簡體   English   中英

在 bunyan 日志中格式化輸出

[英]Formatting output in bunyan logging

我正在試驗節點 bunyan 模塊。 作為其中的一部分,我想知道一些關於 bunyan 的事實。

  1. bunyan 是否有助於更改打印在 bunyan 日志上的內容的順序。 例如默認時間戳將打印在最后......有沒有辦法在開始時打印它? 如果是,請與我分享..

  2. 通過在應用程序中指定路徑,Bunyan 日志將被記錄到文件中。 我們可以在屬性文件中的其他地方指定而不是在應用程序中指定。如果是這樣,請分享如何做到這一點...

對於 #1,我假設您正在使用 bunyan-cli。 您可以更改一些內容,但我認為您無法更改順序。 它確實有一個格式化程序,你可以使用node index.js | bunyan -o short node index.js | bunyan -o short改變你的輸出:

[2015-05-13T22:55:28.613Z]  INFO: App/sampleObject/77405 on host.local: User logged in (reqId=1, user=frank)
[2015-05-13T22:55:28.615Z]  INFO: App/sampleObject/77405 on host.local: User queried DB (reqId=1, user=frank)

對此:

22:55:15.830Z  INFO App/sampleObject: User logged in (reqId=1, user=frank)
22:55:15.832Z  INFO App/sampleObject: User queried DB (reqId=1, user=frank)

我覺得這更具可讀性。

對於#2,您希望在應用程序開始時從配置文件設置日志記錄實例。 像下面這樣:

var bunyan = require('bunyan');
var configOptions = require('../path/to/config.json');
var logger = bunyan.createLogger( configOptions );
bunyan.log = logger;

加載配置文件有更好的策略,但單個 JSON 文件也可以。 如果您想設置process.stdout流,您可能需要比純 JSON 提供的更多選項,因此在這種情況下config.js文件會更好。

在其他文件中,您可以像這樣訪問日志:

var log = require('bunyan').log;
log.info('This is another file.`);

確保需要其他文件之前配置記錄器,否則記錄對象log將無法正確初始化。

注意:您還可以動態地將流添加到 Bunyan 記錄器。 這不在他們的文檔中(因此可能需要您自擔風險),但是對於給定的logger ,您可以調用logger.addStream( streamConfigObj )其中streamConfigObj與您將在streamstream:[]使用的對象相同stream:[].createLogger

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM