log4j
入口【日志收集】
所谓的入口,其实就是所谓的收集日志信息,如何有效、分门别类的收集所需信息,使我们记录日志文件的第一步。
log4js提供了等级分类与别名分类
安装依赖:
等级(Level)
就是日志的分级,日志有了分级,才能更好地为我们展示日志(不同级别的日志在控制台中采用不同的颜色,比如 error 通常是红色的),在生产可以有选择的落盘日志,比如避免一些属于.debug才用的敏感信息被泄露出来
log4js 的日志分为九个等级,各个级别的名字和权重如下:
测试:
创建js文件:
打印结果:
这样就能很直观的将不同的等级的日志分类。一方面方便了我们查看终端日志,另外之后在过滤中同样可以起到作用。
分等级的目的就是为了便于查找
类型(category)
实例化log4js时可以指定一个别名,然后在日志中可以方便区分哪个文件
打印结果:
出口【日志输出】
Appender
上面例子只是初始化实例,以不同的类型、等级输出。默认为console输出,如何保存在文件中,这时候就需要appender上场了。
log4js 提供的 Appender
Console 和 File 都是 log4js 提供的 appender,除此之外还有:
- DateFile:日志输出到文件,日志文件可以安特定的日期模式滚动,例如今天输出到 default-2021-04-20.log,明天输出到 default-2021-04-21.log;
- SMTP:输出日志到邮件;
- Mailgun:通过 Mailgun API 输出日志到 Mailgun;
- levelFilter 可以通过 level 过滤;
- 等等其他一些 appender,到这里可以看到全部的列表。
单个 Appender 可以服务于多个 category
- appender 决定了日志将会被以指定的方式,写入到指定的目标(流,文件,网络)中去
- category 可以自由地选择, 组合各个 appenders 来完成我们想要的日志记录功能
- 同时 category 也定义了当前日志分类的等级 level,来最终决定是否要输出该日志
- catrgory 是 appenders 的组合体 ( 对于 log4js 2.0 之后的版本,之前版本有另外的配置方式 )
Appenders的种类与用途(日志落盘)
日志的分类可以分为: console, stdout, dateFile, file, fileSync, stmp … 多种,在新版本 2.5.2 中,作者又新增了十余种新的 appenders 分类,具体可以参考该链接,此处我们针对最常用的 appenders —— dateFile, file, stdout 的用法做出解析。
file
参数说明:
结果:
datefile
参数说明:
执行上述代码后,log4js 会以天为分割,每天生成一个名字如
test.-2021-04-20.log
的日志文件。结果:
stdout
该方法用于,输出日志到标注输入输出流,比较简单,配置如下:
如此,控制台内会打印:
实战(koa+log4js)
配置文件:./middlewares/logger.js
server.js中使用中间件
使用log4js
作者:Junyang链接:https://juejin.cn/post/6953160430785151007来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Loading...