|
@@ -4,13 +4,32 @@ const minimatch = require('minimatch');
|
|
|
const isBrowser = typeof window !== 'undefined';
|
|
const isBrowser = typeof window !== 'undefined';
|
|
|
const isProd = process.env.NODE_ENV === 'production';
|
|
const isProd = process.env.NODE_ENV === 'production';
|
|
|
|
|
|
|
|
-const config = require('@root/config').logger;
|
|
|
|
|
-
|
|
|
|
|
|
|
+let config = require('@root/config').logger;
|
|
|
let stream = isProd ? require('./stream.prod') : require('./stream.dev');
|
|
let stream = isProd ? require('./stream.prod') : require('./stream.dev');
|
|
|
|
|
|
|
|
// logger store
|
|
// logger store
|
|
|
let loggers = {};
|
|
let loggers = {};
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+// merge configuration from environment variables
|
|
|
|
|
+const envLevelMap = {
|
|
|
|
|
+ INFO: 'info',
|
|
|
|
|
+ DEBUG: 'debug',
|
|
|
|
|
+ WARN: 'warn',
|
|
|
|
|
+ TRACE: 'trace',
|
|
|
|
|
+ ERROR: 'error',
|
|
|
|
|
+};
|
|
|
|
|
+Object.keys(envLevelMap).forEach(envName => { // ['INFO', 'DEBUG', ...].forEach
|
|
|
|
|
+ const envVars = process.env[envName]; // process.env.DEBUG should have a value like 'growi:routes:page,growi:models.page,...'
|
|
|
|
|
+ if (envVars != null) {
|
|
|
|
|
+ const level = envLevelMap[envName];
|
|
|
|
|
+ envVars.split(',').forEach(ns => { // ['growi:routes:page', 'growi:models.page', ...].forEach
|
|
|
|
|
+ config[ns.trim()] = level;
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* determine logger level
|
|
* determine logger level
|
|
|
* @param {string} name Logger name
|
|
* @param {string} name Logger name
|