一个迷你小 Logger,它可以:
onLog
钩子, 方便你扩展你需要的逻辑。prefix
, title template
来个性化输出的日志样式。Install
$ npm install @jerryc/mini-logger
Import and use
import { Logger } from '@jerryc/mini-logger';
const logger = new Logger();
logger.error('Hi');
logger.warn('Hi');
logger.info('Hi');
logger.debug('Hi');
// 输出:[error] Hi
// 输出:[warn] Hi
// 输出:[info] Hi
// 输出:[debug] Hi
Level 有级别之分,new Logger({ level })
时可以定义最低的 level,那么在比此 level 高的级别日志,就会被输出。
Level 级别:
Level | 级别 |
---|---|
Level.ERROR | 1 |
Level.WARN | 2 |
Level.INFO | 3 |
Level.DEBUG | 4 |
如:
import { Logger, Level } from '@jerryc/mini-logger';
const logger = new Logger({ level: Level.ERROR });
logger.info('Hi, i am info');
logger.error('Hi, i am error');
// 输出: Hi, i am error
运行时更新 level
logger.level = Level.INFO;
logger.info('Hi, i am info');
logger.error('Hi, i am error');
// 输出: Hi, i am info
// 输出: Hi, i am error
默认输出格式:[prefix:level] log content
,支持输出格式的自定义。
1. 使用 prefix
来区分模块
import { Logger, Level } from '@jerryc/mini-logger';
const userLogger = new Logger({
prefix: 'user-services',
});
const goodsLogger = new Logger({
prefix: 'goods-services',
});
userLogger.info('hi, i am info');
// 输出:[user-services:info] hi, i am info
goodsLogger.info('hi, i am info');
// 输出:[goods-services:info] hi, i am info
2. 使用 titleTemplate
来更个性化改变格式
import { Logger, Level } from '@jerryc/mini-logger';
const logger = new Logger({
prefix: 'my-logger',
titleTemplate: ({ prefix, level }) => {
return `[${prefix}-${levelMapper[level]}]`;
},
});
logger.info('hi, i am info');
// 输出:[my-logger-info] hi, i am info
onLog
钩子,进行更自定义的逻辑const logger = new Logger({
onLog: (level, args) => {
console.log({ level, args });
// 连接自建的日志上报系统...
},
});
logger.info('hi, i am info');
// 输出:{ level: 3, args: [ 'hi, i am info' ] }
详见:https://jerryc8080.github.io/mini-logger/
详见:https://jerryc8080.github.io/mini-logger/coverage/index.html
Generated using TypeDoc