nodejs 日志框架winston笔记

winston是一款nodejs的日志库,本文以2.1.1版本为例,介绍一下使用方法。

1.基础用法

引用日志库,返回的是一个对象。包含一些构造器,实例方法。

nodejs 日志框架winston笔记

其中transports是日志输出方式。.

Logger是实例构造器,Transport是日志输出实例构造器。最后一块是实例方法,用于输出日志,log是常规方法,剩余的是指定日志类型的方法。

使用默认的日志实例进行日志输出

nodejs 日志框架winston笔记

1.1 自定义日志实例

nodejs 日志框架winston笔记

使用Logger构造器创建实例,需要传入配置项(level,transports等)。Console为默认的输出配置。

1.2 格式化

默认格式化器缺少细节信息,没有时间戳、机器名和进程号,输出格式也不那么适合机器处理。你可以得到所有信息,只是得自己稍微多做点工作。

nodejs 日志框架winston笔记

输出如下,信息更丰富,但依然不那么适合机器处理。
info: Hello world! timestamp=1402286804314, pid=80481

最后,log方法提供了和util.format一样的字符串添补方法:%s替换字符串,%d替换数字(整形或浮点型),%i(替换整形),%f(替换浮点型)

最后一个对象都会被做为meta解析成=形式,比如{name:sc}作为meta会解析成name=sc;

nodejs 日志框架winston笔记

 除此之外还可以在transports中配置

nodejs 日志框架winston笔记

输出 1530587425268 INFO sc

2.输出日志(transports)

winston内置的有Console,File,Http三种方式,默认是Console。

Console:输出到终端(控制台),File输出到文件,Http是以流式传输的方式传递给nodejs http或者https请求。

对于每个日志实例都可以通过add方法添加输出方式,用remove方法移除。

nodejs 日志框架winston笔记

 2.1 日志分类输出

nodejs 日志框架winston笔记

info.log内会收集所有日志,warn中会收集warn和error类型日志,error中只收集error日志。

文档看完了以后再补