2014-08-27 108 views
2

我有小問才知道log4js庫是否是異步的。我試圖找到log4js文件,但沒有運氣。我想在我的節點JS的應用程序的使用這個不過在這之前我想知道的是它的異步或不?是否log4js庫異步?

回答

3

記錄器本身是異步的,但附加目的地它使用可能不是。

比如你正在使用的log4js記錄器與console作爲附加器。 注意,在控制檯的node.js是因爲0.6版本同步。

現在運行日誌功能創建的LogEvent對象併發出log事件:

Logger.prototype.log = function() { 
    var args = Array.prototype.slice.call(arguments) 
    , logLevel = levels.toLevel(args.shift()) 
    , loggingEvent; 
    if (this.isLevelEnabled(logLevel)) { 
    loggingEvent = new LoggingEvent(this.category, logLevel, args, this); 
    this.emit("log", loggingEvent); 
    } 
}; 

現在是到事件監聽器來決定是否異步與否。意味着異步或不完全取決於appender的實現。你可以看到所有可用的附加目的地here

file.js是異步,而控制檯fileSync是同步的。


不久,記錄器傳遞請求到作家,在那裏它是同步還是不依賴於寫入器的規格。實際上,爲什麼控制檯是同步的。

+0

感謝您的意見 – Sohan 2014-08-27 13:55:08

+0

是「datefile」async? – 2017-05-17 11:29:56