egg-logger
Advanced tools
Comparing version 2.4.0 to 2.4.1
2.4.1 / 2019-03-19 | ||
================== | ||
**fixes** | ||
* [[`d048015`](http://github.com/eggjs/egg-logger/commit/d048015f63dde2917cb51f8f30b87a320b2d892b)] - fix: duplicate should ignore some transports (#45) (TZ | 天猪 <<atian25@qq.com>>) | ||
2.4.0 / 2019-03-14 | ||
@@ -3,0 +9,0 @@ ================== |
@@ -77,4 +77,5 @@ interface ILoggerLevel { | ||
* @param {Logger} logger - target logger instance | ||
* @param {Object} [options] - { excludes: [] } | ||
*/ | ||
duplicate(level: LoggerLevel, logger: Logger): void; | ||
duplicate(level: LoggerLevel, logger: Logger, options?: { excludes?: string[] }): void; | ||
@@ -81,0 +82,0 @@ /** |
@@ -129,3 +129,3 @@ 'use strict'; | ||
case 'duplicate': | ||
logger.duplicate('error', this.errorLogger); | ||
logger.duplicate('error', this.errorLogger, { excludes: [ 'console' ] }); | ||
break; | ||
@@ -132,0 +132,0 @@ case 'redirect': |
@@ -66,6 +66,7 @@ 'use strict'; | ||
log(level, args, meta) { | ||
let logger = this.duplicateLoggers.get(level); | ||
let excludes; | ||
let { logger, options } = this.duplicateLoggers.get(level) || {}; | ||
if (logger) { | ||
// tell transport if `duplicate` | ||
logger.log(level, args, Object.assign({}, meta, { duplicate: true })); | ||
excludes = options.excludes; | ||
logger.log(level, args, meta); | ||
} else { | ||
@@ -79,4 +80,4 @@ logger = this.redirectLoggers.get(level); | ||
for (const transport of this.values()) { | ||
if (transport.shouldLog(level)) { | ||
for (const [ key, transport ] of this.entries()) { | ||
if (transport.shouldLog(level) && !(excludes && excludes.includes(key))) { | ||
transport.log(level, args, meta); | ||
@@ -123,7 +124,8 @@ } | ||
* @param {Logger} logger - target logger instance | ||
* @param {Object} [options] - { excludes: [] } | ||
*/ | ||
duplicate(level, logger) { | ||
duplicate(level, logger, options = {}) { | ||
level = level.toUpperCase(); | ||
if (!this.duplicateLoggers.has(level) && logger instanceof Logger) { | ||
this.duplicateLoggers.set(level, logger); | ||
this.duplicateLoggers.set(level, { logger, options }); | ||
} | ||
@@ -130,0 +132,0 @@ } |
@@ -42,5 +42,2 @@ 'use strict'; | ||
log(level, args, meta) { | ||
// don't log to console if duplicate | ||
if (meta && meta.duplicate) return; | ||
const msg = super.log(level, args, meta); | ||
@@ -47,0 +44,0 @@ if (levels[level] >= this.options.stderrLevel && levels[level] < levels['NONE']) { |
{ | ||
"name": "egg-logger", | ||
"version": "2.4.0", | ||
"version": "2.4.1", | ||
"description": "egg logger", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -76,4 +76,6 @@ # egg-logger | ||
Accept an `options.excludes` to special whether excludes some tranports. | ||
```js | ||
logger.duplicate('error', errorLogger); | ||
logger.duplicate('error', errorLogger, { excludes: [ 'console' ]}); | ||
logger.error(new Error('print to errorLogger')); // will additional call `errorLogger.error` | ||
@@ -80,0 +82,0 @@ ``` |
@@ -75,6 +75,6 @@ # egg-logger | ||
可以把日志复制一份到指定的日志对象 | ||
可以把日志复制一份到指定的日志对象,支持可选的 `options.excludes` 来排除对应的 tranport | ||
```js | ||
logger.duplicate('error', errorLogger); | ||
logger.duplicate('error', errorLogger, { excludes: [ 'console' ] }); | ||
logger.error(new Error('print to errorLogger')); // 会多调用一次 `errorLogger.error` | ||
@@ -81,0 +81,0 @@ ``` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
49852
1233
123