swa*_*ang 5 javascript performance logging line-numbers node.js
我正要在我的应用程序中使用winston,然后我意识到它无法在日志中显示函数名称/行号,我认为这对于调试服务器端应用程序非常重要。
经过一番挖掘,我在温斯顿的 github 问题页面上找到了解释。
他们非常清楚地解释了原因是性能,在每个日志记录调用上获取堆栈跟踪非常昂贵。
然而,当我寻找温斯顿替代品时,我发现一些库已经提供了记录行号的功能,例如 Bunyan、Scribe和Bristol。我查看了Bristol的源代码,它对函数有以下注释getOrigin
:
/**
* Finds the origin of the Bristol log call, and supplies the file path and
* line number.
* This function uses JavaScriptStackTraceApi to be as fast as possible:
* https://code.google.com/p/v8-wiki/wiki/JavaScriptStackTraceApi
Run Code Online (Sandbox Code Playgroud)
我找到了关于这里的文档JavaScriptStackTraceApi
我只是好奇,这与温斯顿家伙谈论的堆栈跟踪类型相同吗?获取行号是 Nodejs 中固有的问题,没有日志库可以解决吗?
我希望记录行号,但不希望以严重的性能损失为代价。Bristol
看起来确实不错,有人看过它的性能基准吗?或者任何打开行号功能的日志库的性能基准?
归档时间: |
|
查看次数: |
436 次 |
最近记录: |