首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NPM酷库:log4js JavaScript日志框架

NPM酷库,每天两分钟,了解一个流行NPM库。

前两天,我们认识了 debug 库 和 winston 库,两款管理程序日志的库,其中debug偏向于适合开发调试,winston则更适合在一个完整的 Node.js 应用中管理日常日志记录。

今天,我们继续认识另一个日志框架 log4js,这个框架和 winston 有些类似,也提供了多路日志输出的功能。所谓多路,意思是你可以自定义多个日志储存驱动,比如,将日志输出到终端的同时,将重要日志记录到文件中,甚至写到数据库中。 winston 中称之为 Transports,而log4js 中称之为 Appenders (输出源)。

注意,虽然 log4js 的名字很像JAVA的日志库 log4j,但两者没什么关系,并且接口也是不同的

log4js 用法

上边就是log2js 最简单的用法,程序会将日志输出到控制台:

注意,代码中将日志输出等级设置为,程序会输出DEBUG级别以上的日志,如果不设置,默认级别为 即关闭所有日志输出!

log4js 重要概念

Level

日志级别,debug/info/error 等,参考 RFC5424。

Category

日志分类,可以用来标志不同的程序模块,类似库中的效果,默认分类为 。

Appender

输出源,你可以选择不同的输出源将日志输出到控制台、文件、数据库,甚至Email。

Logger

log4js 的主要日志接口,可以实例多个Logger,每一个Logger都可选地设置 Category,所以我们的应用中,不同模块实例化不同的Logger对象,输出的日志中就会记录下不同模块的日志输出。

Layout

Layout是日志输出时用来格式化日志的函数,你可以自定义不同的Layout函数,用来自定义日志格式。

LogEvent

每一次调用日志记录函数就会生成一个LogEvent:

LogEvent 中包含当前时间戳、日志级别、分类等信息。

参考资料

log4js: https://github.com/log4js-node/log4js-node

log4js文档: https://log4js-node.github.io/log4js-node/index.html

RFC 5424: https://tools.ietf.org/html/rfc5424

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180106G0AGO200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券