0.1.5 • Published 6 years ago
emm-logger v0.1.5
emm-logger
带颜色的打印工具,支持命令选项来改变打印的级别,默认有五个级别:
debug
info
warn
error
fatal
从上往下,指定某个级别,其以及其下面的级别都会被打印。
使用 (typescript | javascript)
import { ERROR, EmmLogger } from '../index'
// const { ERROR, EmmLogger } = require('emm-logger')
let logger = new EmmLogger('demo', {
'level': ERROR,
'show_date': true,
})
logger.debug('A', 'B', 'C')
logger.info('a', 'b', 'c')
logger.warn('X', 'Y', 'Z', { a: 1, b: 2})
logger.error('x', 'y', 'z', { c: { a: 'hello' }, b: { d: 'world' } })
logger.fatal('1', '2', '3')
详细
Level
通常你并不需要知道 Level
的细节,在 EmmLogger
中预定义了五个 Level
:
DEBUG
INFO
WARN
ERROR
FATAL
在创建 EmmLogger
实例的时候指定 option 的 level
参数,即可指定默认的日志级别,但是如果创建的 logger
是输出到文件中的,则不受此命令行参数的影响
import { ERROR, EmmLogger } from '../index'
let logger = new EmmLogger('demo', {
'level': ERROR,
'show_date': true,
})
logger.debug('A', 'B', 'C')
logger.info('a', 'b', 'c')
logger.warn('X', 'Y', 'Z', { a: 1, b: 2})
logger.error('x', 'y', 'z', { c: { a: 'hello' }, b: { d: 'world' } })
logger.fatal('1', '2', '3')
创建 EmmLogger
let logger = new EmmLogger(<logger name>, <options>)
name
: name 是一个标志性的东西,它会作为输出的一部分(如上图所示)- options
level
:Level
的实例,指定默认的打印级别,默认值为WARN
log_path
: 这是一个文件路径,默认情况下,日志是输出在终端的,log_path
允许你将日志重定向到文件中。如果它不存在或者并非文件,你将得到一个错误消息,注意,它并不会抛出一个错误,日志内容将会继续输出到终端; 否则日志将重定向到该文件中
colorful
: 布尔值,是否带颜色输出;如果指定了一个正确的log_path
,则此值默认为 false,你仍可以通过命令行参数--log-option=colorful
来打开它;否则,默认值为 trueshow_date
: 布尔值,是否输出时间,默认值为 true,你也可以通过命令行参数--log-option=no-date
来关闭它show_pretty
: 布尔值,若为 false,每条日志都会被输出在一行,若为 true,则会展开输出,例如 JSON 会被层次化输出,默认值为 false,你仍可以通过命令参数--log-option=pretty
来打开它name_dyeing
: { (text: string)=> string },原则上是用来装饰 name 的颜色的函数,默认值为 colors.graydate_dyeing
: { (text: string)=> string },原则上是用来装饰 date 的颜色的函数,默认值为 colors.gray
命令行参数
--log-level=<debug|info|warn|error|fatal>
,强行指定所有的EmmLogger
实例的打印级别--log-option=<[no-](date|pretty|colorful)>
,其中no-
前缀表示否定
推荐写法
可以在一个诸如 utils.ts
中定义全局唯一的 logger:
import { EmmLogger } from 'emm-logger'
export const logger = new EmmLogger('emm.', { log_path: 'log.txt' })
然后在别的地方直接引用这个 logger。