日志库 winston 的学习笔记 - logger.info 打印到控制台上的实现原理
上述代碼的含義是,如果當前 Node.js 執行環境不是生產環境,則將 winston 的輸出,打印到控制臺上。
_stream_readable.js 拋出 data 事件:
讀取事件處理函數:
console 對應的 event handler:
transformed:
console 有專門對應的 transport 實現文件,位于 console.js 內:
從 data 字符串能看出在 console 打印彩色字符串的實現方式:
并沒有像我想象的那樣,執行到 82 行的 console.log
console 對象的 _stdout 屬性,在 internal 這個 constructor.js 里注入:
這個 writeUtf8String 函數,是原生 native API:
位于 Node.js 源代碼 的 internal/stream_base_common.js 內部:
writeUtf8String
stream_base_commons.js 文件位置如下:
https://github.com/nodejs/node/tree/master/lib/internal
native 實現:
https://github.com/nodejs/node/blob/master/lib/internal/stream_base_commons.js
this[kFs].write
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的日志库 winston 的学习笔记 - logger.info 打印到控制台上的实现原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 位、字节、半字、字、内存位宽
- 下一篇: 关于 Node.js 应用里使用 win