12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 'use strict';
- /* global window: true */
- /* eslint-disable
- no-shadow,
- no-param-reassign,
- space-before-function-paren
- */
- const LogLevel = require('./LogLevel');
- const MethodFactory = require('./MethodFactory');
- const PrefixFactory = require('./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;
- const loglevel = 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;
- }
- });
- module.exports = loglevel;
|