javascript - log4js 库是异步的吗?

标签 javascript node.js log4js-node

我有一个小问题想知道 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 是异步的,而 consolefileSync 是同步的。


很快,logger 将请求传递给writer,同步与否取决于 writer 的规范。 console 是同步的实际上有很好的理由。

关于javascript - log4js 库是异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25522538/

相关文章:

javascript - 检查客户端是否有 socket.io id 仍然连接

javascript - 让javascript处理flash(firefox问题)

Node.js:登录后在 URL 中发送带有 token (JWT)的新请求

javascript - log4js https 日志记录端点

node.js - Log4js 需要几个小时才能写入日志文件

javascript - 如何重构 "if x return x"语句

javascript - 在 angularJS 应用程序文档就绪事件中运行 jquery 代码

node.js - Browserify 的自定义依赖名不起作用

javascript - 试图理解 nodeJS 和 javascript 对象

node.js - Node js 语法错误意外标记?