在node
上工作的日志框架
支持以下的特征:
- 彩色的控制台日志输出或错误
- 代替
node
的console.log
方法(还可以添加配置项) file appender
可以在基于文件大小或日期进行配置SMTP appender
Loggly appender
Logstash UDP appender
logFaces appender
multiprocess appender
(当你用到工作进程会有用)- 一个
logger
对象为了connect/express
服务 - 配置日志信息的布局和方式
- 不同的日志栏目有着不同的日志级别(让你的应用日志一部分为
DEBUG
,一部分为ERROR
)
在1.0之后的重要改变
默认的appender
改为console
去输出。当用console
去输出日志可以减少内存的问题。
当你在浏览器使用log4js
,你现在需要明确的配置使用console appender
log4js
不在支持小于0.12.X node
版本
安装
npm install log4js
使用
1 | const log4js = require('log4js'); |
你可以看到
[2017-01-10 12:52:02.700] [DEBUG] [default] - Some debug messages
再看一个完整的例子,不过只是代码片段
1 | var log4js = require('log4js'); |
日志有8个级别,分别是:
ALL
TRACE
DEBUG
INFO
WARN
ERROR
FATAL
OFF
这些级别总的来说,上面级别的包含下面的级别的输出内容
上面前六行代码可以这样写
1 | var log4js = require('log4js'); |
以上为两种加载 appender 的方式
配置
你可以手动配置 appender
和 日志级别(像上面),或者提供一个配置json
文件,或者一个对象。
你可以配置log4js
定期检查配置文件的改变,如果有改变就重新加载,这允许改变日志级别在不重启应用的情况下
开启这个功能,指定一个时间:
1 | log4js.configure('file.json',{'reloadSecs':300}) |
对于file appender
你可以指定一个 log 存放的文件夹
1 | log4js.configure('my_log4js_configuration.json', { cwd: '/absolute/path/to/log/dir' }); |
如果你已经指定一个绝对路径在配置文件中的FileAppenders
中,你需要为FileAppenders
添加一个"absolute": true
配置项去覆盖cwd
比如:
1 | { |
一个简单的配置文件
1 | { |
说明:type:appender 的类型,category:每一个日志对象的唯一标识,filename:日志文件的名称,pattern:日志文件的后缀,有一定的格式要求
alwaysIncludePattern: 日志文件名是否总总是加上 pattern 的后缀,默认是当天的不加的
levels:日志级别,key 为上面日志对象的 category ,value:为日志级别(一共八个级别)