最近正好在学习NodeJS日志框架,在这里大概写一下最近的收获,介绍两个最近比较火的日志框架:
winston和bunyan
winston 具有强大的社区支持(从mongodb 到 第三方平台),但是默认日志数据里没有时间戳,机器名称或者是进程id。 它的设计目标是成为一项简单普遍的日志库,拥有多项transport(日志所储存的地方)的支持,每一个winston的日志可以在不同的等级有多个tansport。
bunyan 可以提供结构性机器可读日志,它的输出是一行JSON.Stringify。尽管它对于人们的可读性不高,但是我们可以利用pipe来格式化日志。默认日志数据里带有时间戳,机器名称,应用名称,进程id等。bunyan 对复杂的object和context更具有支持性,并且bunyan有子日志的概念,它可以允许应用的子组件拥有自己的日志,也因此日志有自己的所属范围。
winston or bunyan?
winston:拥有强大的社区支持不同的日志模块
bunyan:更适用于复杂的日志处理,但是需要用户自定义
根据你的项目来选择需要的运行日志,看哪一个能够和app更无缝地连接。