aboutsummaryrefslogtreecommitdiff
path: root/node_modules/loglevelnext/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/loglevelnext/index.js')
-rw-r--r--node_modules/loglevelnext/index.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/node_modules/loglevelnext/index.js b/node_modules/loglevelnext/index.js
new file mode 100644
index 00000000..000d636d
--- /dev/null
+++ b/node_modules/loglevelnext/index.js
@@ -0,0 +1,61 @@
+'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;
+ }
+});