log4js是什么?
记录日志的时候,需要方便查找。分类是必须的。 如果是流水账一样去记录。那么查找起来非常繁琐。失去记录日志的意义。 log4js是node提供的一个记录日志模块。
为什么学习
比较好奇,公司的日志是如何记录的。
安装
npm i log4js
开始使用
// 引用log4js
let log4js = require('log4js');
// 配置
let log4jsConfig = {
appenders: appenders,
categories: categories,
};
// 创建实例
RecordLog = log4js.getLogger('record');
ErrcordLog = log4js.getLogger('errcord');
// 打印
RecordLog.info('hello RecordLog')
ErrcordLog.info('hello ErrcordLog')
以上四部分,展示了如何使用。
包括:引用,配置,创建实例,打印日志。
日志格式
// 日志时间 日志类型 日志种类 日志内容
[2020-04-06T17:21:42.317] [INFO] record - hello RecordLog
日志等级

重要的配置文件
包含:
appenders:日志出口配置
categories:日志种类配置
// 日志出口配置
let appenders = {
stdout: { // 控制台,标准输出出口
type: 'stdout'
},
stderr: { // 控制台,标准错误出口
type: 'stderr'
},
record: { // 名字为‘record’的日志出口
type: 'dateFile', // 输出类型,此处表示,日志以文件类型输出。
filename: 'record', // 输出文件名字。
pattern: '-yyyy-MM-dd.log', // 输入文件名字的后缀格式(年月日)。
alwaysIncludePattern: true, // 总是以年月日后缀方式展现
},
error: {
type: 'dateFile',
filename: 'error',
pattern: '-yyyy-MM-dd.log',
alwaysIncludePattern: true,
layout : {"type": "messagePassThrough"}; // 日志内容只包括消息
}
}
// 日志种类配置
let categories = {
// 默认种类(在制造日志实例的时候,不传参数,或者参数没有日志类型)
default: {appenders: ['record'], level: 'INFO'},
// record种类日志(在制造日志实例的时候,传'record'参数)
record: {appenders: ['record','stdout'], level: 'INFO'},
error: {appenders: ['errcord'], level: 'ERROR'},
};
// categories里面每一项,表示一个日志种类。
// 日志种类的appenders表示,日志选择的出口,可以是多个。
// 日志种类的level表示,日志输出等级过滤。输出等级以上的日志。
可以尝试输入日志
日志会被根据分类配置,寻找不同的日志出口,进行输出,产生日志文件。
另外由一些细节有待补充,
比如设置,console也能记录日志