当前位置: 首页 > Web前端 > HTML5

日志库winston学习笔记——logger.info打印到控制台的实现原理

时间:2023-04-06 00:23:59 HTML5

if(process.env.NODE_ENV!=='production'){logger.add(newwinston.transports.Console({format:winston.format.combine(winston.format.colorize({all:true}),winston.format.simple())}));}上面代码的意思是如果当前的Node.js执行环境是不是生产环境,然后将winston的输出打印到控制台。_stream_readable.jsthrowsdataevent:read事件处理函数:console对应的事件处理函数:transformed:console有对应的transport实现文件,位于console.js:从datastring中可以看出打印的是colorstring在console上的实现方法:并不是我想象的那样,执行到第82行的console.logconsole对象的_stdout属性被注入了内部的constructor.js:这个writeUtf8String函数是一个nativenativeAPI:位于Node.js源码internal/stream_base_common.js内部:writeUtf8Stringstream_base_commons.js文件位置如下:https://github.com/nodejs/nod...原生实现:https://github.com/nodejs/nod...this[kFs].写更多Jerry原创文章,尽在:《王子熙》: