资讯专栏INFORMATION COLUMN

NPM酷库:log4js JavaScript日志框架

nicercode / 2695人阅读

摘要:酷库,每天两分钟,了解一个流行库。今天,我们继续认识另一个日志框架,这个框架和有些类似,也提供了多路日志输出的功能。中称之为,而中称之为输出源。日志分类,可以用来标志不同的程序模块,类似库中的效果,默认分类为。

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

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

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

注意,虽然 log4js 的名字很像JAVA的日志库 log4j,但两者没什么关系,并且接口也是不同的
log4js 用法
const log4js = require("log4js");

const logger = log4js.getLogger();

logger.level = "debug";

logger.debug("Some debug messages");

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

[2018-01-06T12:23:43.706] [DEBUG] default - Some debug messages

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

log4js 重要概念 Level

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

Category

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

Appender

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

Logger

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

Layout

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

LogEvent

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

logger.debug("Some debug messages");

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

参考资料

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

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

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

欢迎关注公众号:梁兴臣

每天了解一个NPM库,一年后成为Node.js高手

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90705.html

相关文章

  • NPM酷库:winston 多路日志记录

    摘要:昨天,我们认识了库的用法,用来控制输出调试日志。今天我们再了解一个日志记录的库,一个多路传输的日志记录库。所谓多路传输,是指,你可以自定义多个日志储存驱动,比如,将日志输出到终端的同时,将重要日志记录到文件中,甚至写到数据库中。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们认识了debug库的用法,用来控制输出调试日志。但是,debug的特性适合于开发调试,并不适合程序记...

    荆兆峰 评论0 收藏0
  • NPM酷库:debug,控制调试日志

    摘要:今天我们要了解的库是,一个专门用来控制输出调试日志的库。但是,随着项目规模增加,控制台输出的日志就会堆积很多而不可读。库就是一款专门控制日志输出的库,能够完美解决我们的上述需求。 NPM酷库,每天两分钟,了解一个流行NPM库。 今天我们要了解的库是debug,一个专门用来控制输出调试日志的库。 通常,我们直接使用 console.log 输出调试日志,使用console对象直接将日志输...

    funnyZhang 评论0 收藏0
  • NPM酷库:depd 声明弃用功能

    摘要:有没有优雅的方式呢今天我们了解的库就是专门来控制输出弃用功能警告日志的。声明弃用函数使用包裹一层我们要废弃的函数,那么这个函数在被第一次调用时,就会自动输出警告信息。声明弃用属性使用声明对象指定的属性被弃用。 NPM酷库,每天两分钟,了解一个流行NPM库。 Node.js 高效率编程的基础是大量的NPM开源库,开发应用时,找特定领域的NPM库要比自己从头写代码要高效得多。如果某个领域没...

    paulquei 评论0 收藏0
  • NPM酷库:commander,命令行参数处理框架

    摘要:酷库,每天两分钟,了解一个流行库。昨天,我们学习的库,用于解析命令行参数,能将参数数组转换为一个更易于访问的对象。今天,我们继续学习一个更加强大的命令行参数处理库。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们学习的minimist库,用于解析Node.js命令行参数,能将参数数组process.env.argv 转换为一个更易于访问的对象。 今天,我们继续学习一个更加强...

    dendoink 评论0 收藏0
  • NPM酷库039:iconv-lite,字符串编码转换

    摘要:酷库,每天两分钟,了解一个流行库。准确地说,的编码采用的是,这是一个很古老的年诞生有些过时的编码。是系统上非常著名的库,它可以将数据在任何编码间互转。将字符串转换为编码的汉字这样会输出乱码将编码的数据转换为字符串正常输出汉字参考资料 showImg(https://segmentfault.com/img/bV3GvP?w=602&h=339); NPM酷库,每天两分钟,了解一个流行N...

    whidy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<