From f2fb5c03c4a4d18185ed8a5b69846f9b15bc77b1 Mon Sep 17 00:00:00 2001 From: lizheming Date: Fri, 10 Nov 2017 22:40:43 +0800 Subject: [PATCH] add format config function --- src/adapter/base.js | 8 +++++++- src/adapter/console.js | 13 ++++--------- src/adapter/datefile.js | 14 ++++---------- src/adapter/file.js | 11 +++-------- src/adapter/gelf.js | 13 ++++--------- 5 files changed, 22 insertions(+), 37 deletions(-) diff --git a/src/adapter/base.js b/src/adapter/base.js index c2a3726..b669773 100644 --- a/src/adapter/base.js +++ b/src/adapter/base.js @@ -2,8 +2,10 @@ const log4js = require('log4js'); const _logger = Symbol('_logger'); module.exports = class { - constructor() { + constructor(config/*, clusterMode */) { this[_logger] = {}; + const logConfig = this.formatConfig(config); + this.setLogger(logConfig); } debug(...args) { @@ -36,4 +38,8 @@ module.exports = class { this.configure(config); this[_logger] = log4js.getLogger(category); } + + formatConfig(config) { + return config; + } }; diff --git a/src/adapter/console.js b/src/adapter/console.js index d8223fe..86c9f87 100644 --- a/src/adapter/console.js +++ b/src/adapter/console.js @@ -1,23 +1,18 @@ const Base = require('./base'); module.exports = class ConsoleLogger extends Base { - constructor(config) { - super(config); - - const lConfig = Object.assign({}, config); - let {level, layout} = lConfig; + formatConfig(config) { + let {level, layout} = config; level = level ? level.toUpperCase() : 'ALL'; layout = layout || {type: 'pattern', pattern: '%[[%d] [%z] [%p]%] - %m'}; - config = Object.assign({ + return Object.assign({ appenders: { console: {type: 'console', layout} }, categories: { default: {appenders: ['console'], level} } - }, lConfig); - - this.setLogger(config); + }, config); } }; diff --git a/src/adapter/datefile.js b/src/adapter/datefile.js index 6843a5f..e96fe48 100644 --- a/src/adapter/datefile.js +++ b/src/adapter/datefile.js @@ -1,24 +1,18 @@ const Base = require('./base'); module.exports = class DateFileLogger extends Base { - constructor(config, clusterMode) { - super(config); - - const lConfig = Object.assign({}, config); + formatConfig(config) { // eslint-disable-next-line prefer-const - let {level, filename, pattern, alwaysIncludePattern, absolute, layout} = lConfig; + let {level, filename, pattern, alwaysIncludePattern, absolute, layout} = config; level = level ? level.toUpperCase() : 'ALL'; - // combine config for date file appender, common config for log4js - config = Object.assign({ + return Object.assign({ appenders: { dateFile: {type: 'dateFile', filename, pattern, alwaysIncludePattern, absolute, layout} }, categories: { default: {appenders: ['dateFile'], level} } - }, lConfig); - - this.setLogger(config); + }, config); } }; diff --git a/src/adapter/file.js b/src/adapter/file.js index 9cd9b17..4bbfa9e 100644 --- a/src/adapter/file.js +++ b/src/adapter/file.js @@ -1,24 +1,19 @@ const Base = require('./base'); module.exports = class FileLogger extends Base { - constructor(config, clusterMode) { - super(config); - - const lConfig = Object.assign({}, config); + formatConfig(config) { // eslint-disable-next-line prefer-const let {level, filename, maxLogSize, backups, absolute, layout} = config; level = level ? level.toUpperCase() : 'ALL'; // combine config for file appender, common config for log4js - config = Object.assign({ + return Object.assign({ appenders: { file: {type: 'file', filename, maxLogSize, backups, absolute, layout} }, categories: { default: {appenders: ['file'], level} } - }, lConfig); - - this.setLogger(config); + }, config); } }; diff --git a/src/adapter/gelf.js b/src/adapter/gelf.js index 3af4695..424d4af 100644 --- a/src/adapter/gelf.js +++ b/src/adapter/gelf.js @@ -1,20 +1,15 @@ const Base = require('./base'); module.exports = class GelfLogger extends Base { - constructor(config) { - super(config); - - const lConfig = Object.assign({}, config); - const {level, host, hostname, port, facility} = lConfig; - config = Object.assign({ + formatConfig(config) { + const {level, host, hostname, port, facility} = config; + return Object.assign({ appenders: { gelf: {type: 'gelf', host, hostname, port, facility} }, categories: { default: {appenders: ['gelf'], level} } - }, lConfig); - - this.setLogger(config); + }, config); } };