当前位置: 首页 > 后端技术 > Node.js

NPM酷库:log4jsJavaScript日志框架

时间:2023-04-04 00:19:45 Node.js

NPM酷库,每天两分钟了解一个流行的NPM库。前两天认识了debug库和winston库,两个管理程序日志的库,其中debug更适合开发调试,winston更适合管理一个完整Node.js中的日常日志记录应用。今天继续了解另一个日志框架log4js,它和winston有些类似,也提供了多路日志输出的功能。所谓多通道,就是可以自定义多个日志存储驱动,比如在向终端输出日志的同时,将重要的日志记录到文件中,甚至写入数据库。在winston中称为Transports,在log4js中称为Appenders(输出源)。注意,虽然log4js的名字和JAVA的日志库log4j很像,但是两者没有任何关系,接口也不一样.getLogger();logger.level='debug';logger.debug("一些调试消息");以上是log2js最简单的用法,程序会向控制台输出日志:[2018-01-06T12:23:43.706][DEBUG]default-Somedebugmessages注意日志输出级别设置为debug代码,程序会输出DEBUG级别以上的日志。如果不设置,默认级别为OFF,即关闭所有日志输出!Log4js重要概念Level日志级别,debug/info/error等,参考RFC5424。Category日志类别,可用于标记不同的程序模块,类似于调试库中的效果,默认类别为default。Appender输出源,可以选择不同的输出源将日志输出到控制台、文件、数据库甚至Email。Loggerlog4js的日志主接口可以实例化多个Logger,每个Logger可以选择性的设置一个Category,所以在我们的应用中,不同的模块实例化不同的Logger对象,输出日志会记录不同模块的日志输出。LayoutLayout是日志输出时用来格式化日志的函数。可以自定义不同的Layout函数来自定义日志格式。每次LogEvent调用日志记录函数时,都会生成一个LogEvent:logger.debug("Somedebugmessages");LogEvent包含当前时间戳、日志级别和分类等信息。参考资料log4js:https://github.com/log4js-nod...log4js文档:https://log4js-node.github.io...RFC5424:https://tools.ietf.org/html/r...欢迎关注公众号:梁星辰每天了解一个NPM库,一年成为Node.js高手