我有一个小问题想知道 log4js 库是否是异步的。我试图找到 log4js 文档,但没有成功。我想在我的 Node js 应用程序中使用它,但在此之前我想知道它是否是异步的?
最佳答案
Logger 本身是异步的,但它使用的 appender 可能不是。
例如,您将 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 实现。可以看到所有可用的appender here .
file.js 是异步的,而 console 和 fileSync 是同步的。
很快,logger 将请求传递给writer,同步与否取决于 writer 的规范。 console 是同步的实际上有很好的理由。
关于javascript - log4js 库是异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25522538/