前言
写node服务,需要记录日志。日志模块要么自己写,要么用已经有的模块——log4js就是一个不错的选择
安装
npm install log4js //安装的版本是 2.3.3
使用
example
//引用log4js模块
const log4js = require('log4js');
//日志生成配置的设置
log4js.configure({
appenders: {
cheese: {
type: 'file', //日志输出类型 dateFile
filename: 'cheese.log' //日志输入路径
}
},
//日志类型的设置
categories: {
//日志默认配置
default: {
//选择日志配置
appenders: ['cheese'],
//日志级别 all trace debug info warn error fatal mark off
//大小写均,all是输出全部,off是不输出
level: 'error'
}
}
});
//获取日志对象实例
const logger = log4js.getLogger('cheese');
//输出级别 小 level 决定 输出 从当前设定的级别 至 最大级别到日志
//设置 level 为'error',则只输出error、fatal 和 mark 的日志
logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');
logger.mark('mark.');//官方例子没有,但是可以调用
//输出级别 大
output
[2017-09-06 15:52:34.493] [ERROR] cheese - Cheese is too ripe!
[2017-09-06 15:52:34.495] [FATAL] cheese - Cheese was breeding ground for listeria.
[2017-09-06 15:52:34.495] [MARK] cheese - mark.
appenders 详细说明
-
当 type 为 “file” 时
key 类型 说明 filename string 您要写入日志文件的路径。 maxLogSize integer (可选) - 日志文件的最大大小(以字节为单位)。如果未指定,则不会发生日志滚动。 backups integer (可选,默认值= 5) - 日志滚动期间要保留的旧日志文件的数量。 layout Object (可选,默认为基本布局) 参考下文 encoding string (默认“utf-8”) mode integer (默认0644) flags string (默认’a’) compress boolean (默认为false) - 在滚动期间压缩备份文件(备份文件将具有.gz扩展名) -
当 type 为 “dateFile” 时
key 类型 说明 filename string 您要写入日志文件的路径。 pattern string (可选,默认为.yyyy-MM-dd) - 用于确定何时滚动日志的模式。参考下文 layout Object (可选,默认为基本布局) 参考下文 encoding string (默认“utf-8”) mode integer (默认0644) flags string (默认’a’) compress boolean (默认为false) - 在滚动期间压缩备份文件(备份文件将具有.gz扩展名) alwaysIncludePattern boolean (默认为false) - 将模式包含在当前日志文件的名称以及备份中。 daysToKeep integer (默认为0) - 如果此值大于零,则在日志滚动期间将删除比该天多的文件。 -
pattern 说明
key 说明 取值 dd 两位日期 date.getDate() MM 两位月份 date.getMonth() + 1 yy 两位年份 date.getFullYear().toString().substring(2, 4) yyyy 四位年份 date.getFullYear() hh 两位小时,24小时制 date.getHours() mm 两位分钟 date.getMinutes() ss 两位秒钟 date.getSeconds() SSS 三位毫秒 date.getMilliseconds() O 时区,大写字母O,占位符输出结果为+0800 timezone offset in +hm format -
layout说明 待整理
key 说明 取值 dd 日期 date.getDate()
扫描二维码关注公众号,回复:
8705650 查看本文章