12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 'use strict';
- require('object.assign/shim')();
- require('es6-symbol/implement');
- /* global window: true */
- const LogLevel = require('./lib/LogLevel');
- const MethodFactory = require('./lib/MethodFactory');
- const PrefixFactory = require('./factory/PrefixFactory');
- const defaultLogger = new LogLevel({ name: 'default' });
- const cache = { default: defaultLogger };
- // Grab the current global log variable in case of overwrite
- const existing = (typeof window !== 'undefined') ? window.log : null;
- module.exports = Object.assign(defaultLogger, {
- get factories() {
- return {
- MethodFactory,
- PrefixFactory
- };
- },
- get loggers() {
- return cache;
- },
- getLogger(options) {
- if (typeof options === 'string') {
- options = { name: options };
- }
- if (!options.id) {
- options.id = options.name;
- }
- const { name, id } = options;
- const defaults = { level: defaultLogger.level };
- if (typeof name !== 'string' || !name || !name.length) {
- throw new TypeError('You must supply a name when creating a logger.');
- }
- let logger = cache[id];
- if (!logger) {
- logger = new LogLevel(Object.assign({}, defaults, options));
- cache[id] = logger;
- }
- return logger;
- },
- noConflict() {
- if (typeof window !== 'undefined' && window.log === defaultLogger) {
- window.log = existing;
- }
- return defaultLogger;
- }
- });
|