Socket
Socket
Sign inDemoInstall

egg-logger

Package Overview
Dependencies
Maintainers
10
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

egg-logger - npm Package Compare versions

Comparing version 2.1.0 to 2.2.0

6

History.md
2.2.0 / 2018-12-17
==================
**features**
* [[`d578857`](http://github.com/eggjs/egg-logger/commit/d57885737c4311f17a76713abcd5459523ff92a4)] - feat: support concentrateError and set default to duplicate (#38) (TZ | 天猪 <<atian25@qq.com>>)
2.1.0 / 2018-12-07

@@ -3,0 +9,0 @@ ==================

19

index.d.ts

@@ -63,6 +63,4 @@ interface ILoggerLevel {

* @param {Logger} logger - target logger instance
* @param {Object} [options] - opts
* @param {Boolean} [options.duplicate] - whether write to both loggers
*/
redirect(level: LoggerLevel, logger: Logger, options?: { duplicate?: boolean }): void;
redirect(level: LoggerLevel, logger: Logger): void;

@@ -76,2 +74,15 @@ /**

/**
* Duplicate specify level log to the other logger
* @param {String} level - log level
* @param {Logger} logger - target logger instance
*/
duplicate(level: LoggerLevel, logger: Logger): void;
/**
* Un-duplicate specify level log
* @param {String} level - log level
*/
unduplicate(level: LoggerLevel): void;
/**
* Reload all transports

@@ -125,2 +136,4 @@ */

eol?: string;
// whether write error logger to common-error.log, `duplicate` / `redirect` / `ignore`, default to `duplicate`
concentrateError?: 'duplicate' | 'redirect' | 'ignore';
}

@@ -127,0 +140,0 @@

@@ -26,2 +26,3 @@ 'use strict';

* - {String} [eol] - end of line char
* - {String} [concentrateError] - whether write error logger to common-error.log, `duplicate` / `redirect` / `ignore`
*/

@@ -28,0 +29,0 @@ constructor(options) {

@@ -25,2 +25,3 @@ 'use strict';

errorLogName: '',
concentrateError: 'duplicate',
};

@@ -51,2 +52,3 @@

* - {String} eol - end of line char
* - {String} [concentrateError = duplicate] - whether write error logger to common-error.log, `duplicate` / `redirect` / `ignore`
* - customLogger

@@ -128,3 +130,14 @@ */

if (name !== 'errorLogger') {
logger.redirect('error', this.errorLogger);
switch (logger.options.concentrateError) {
case 'duplicate':
logger.duplicate('error', this.errorLogger);
break;
case 'redirect':
logger.redirect('error', this.errorLogger);
break;
case 'ignore':
break;
default:
break;
}
}

@@ -131,0 +144,0 @@ this[name] = logger;

43

lib/logger.js

@@ -37,2 +37,3 @@ 'use strict';

this.redirectLoggers = new Map();
this.duplicateLoggers = new Map();
}

@@ -60,3 +61,3 @@

* Send log to all transports.
* It's proxy to {@link Transport}'s log method.'
* It's proxy to {@link Transport}'s log method.
* @param {String} level - log level

@@ -67,6 +68,11 @@ * @param {Array} args - log arguments

log(level, args, meta) {
const target = this.redirectLoggers.get(level);
if (target) {
target.logger.log(level, args, meta);
if (!target.options || !target.options.duplicate) return;
let logger = this.duplicateLoggers.get(level);
if (logger) {
logger.log(level, args, meta);
} else {
logger = this.redirectLoggers.get(level);
if (logger) {
logger.log(level, args, meta);
return;
}
}

@@ -96,9 +102,7 @@

* @param {Logger} logger - target logger instance
* @param {Object} [options] - opts
* @param {Boolean} [options.duplicate] - whether write to both loggers
*/
redirect(level, logger, options) {
redirect(level, logger) {
level = level.toUpperCase();
if (!this.redirectLoggers.has(level) && logger instanceof Logger) {
this.redirectLoggers.set(level, { logger, options });
this.redirectLoggers.set(level, logger);
}

@@ -117,2 +121,23 @@ }

/**
* Duplicate specify level log to the other logger
* @param {String} level - log level
* @param {Logger} logger - target logger instance
*/
duplicate(level, logger) {
level = level.toUpperCase();
if (!this.duplicateLoggers.has(level) && logger instanceof Logger) {
this.duplicateLoggers.set(level, logger);
}
}
/**
* Un-duplicate specify level log
* @param {String} level - log level
*/
unduplicate(level) {
level = level.toUpperCase();
this.duplicateLoggers.delete(level);
}
/**
* Reload all transports

@@ -119,0 +144,0 @@ */

{
"name": "egg-logger",
"version": "2.1.0",
"version": "2.2.0",
"description": "egg logger",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -72,15 +72,17 @@ # egg-logger

### Redirect
### Duplicate
Redirect error log to other logger.
Duplicate error log to other logger.
```js
logger.redirect('error', errorLogger);
logger.error(new Error('print to errorLogger')); // equal to `errorLogger.error`
logger.duplicate('error', errorLogger);
logger.error(new Error('print to errorLogger')); // will additional call `errorLogger.error`
```
Write to both loggers:
### Redirect
Redirect special level log to other logger.
```js
logger.redirect('error', errorLogger, { duplicate: true });
oneLogger.redirect('debug', debugLogger); // all debug level logs of `oneLogger` will delegate to debugLogger
```

@@ -87,0 +89,0 @@

@@ -73,15 +73,17 @@ # egg-logger

### 重定向日志
### 汇集日志
可以将日志重定向到指定的日志对象
可以把日志复制一份到指定的日志对象
```js
logger.redirect('error', errorLogger);
logger.error(new Error('print to errorLogger')); // 等价于调用 errorLogger.error
logger.duplicate('error', errorLogger);
logger.error(new Error('print to errorLogger')); // 会多调用一次 `errorLogger.error`
```
也支持日志双写
### 重定向日志
可以将日志重定向到指定的日志对象
```js
logger.redirect('error', errorLogger, { duplicate: true });
oneLogger.redirect('debug', debugLogger); // oneLogger 的调试日志将被 debugLogger 接管,输出过去。
```

@@ -88,0 +90,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc