【问题标题】:Winston: multi process loggingWinston:多进程日志记录
【发布时间】:2018-06-21 18:50:12
【问题描述】:

我创建了一个 nodejs 应用程序,它封装了四个 nodejs 进程。 到目前为止,所有单个 nodejs 进程都在使用 winston npm 记录到不同的日志文件。 现在我想制作一个日志文件,每个节点进程都可以在其中记录。

winston 是否隐式确保日志数据的序列化以使其进程安全(多个进程写入同一个文件而无需担心竞争条件或死锁等)?或者开发人员的工作是确保在某个时间只有一个进程专门写入日志文件。

【问题讨论】:

    标签: node.js logging winston


    【解决方案1】:

    Winston 是否隐式确保日志数据的序列化到 让它过程安全?

    答案是

    当您有多个进程通过 Winston 将日志写入同一个文件时,数据会丢失。这实际上是他们决定不正确处理的know issue

    有很多选择,您可以更改您的日志记录工具,使用进程间通信并且只通过主进程调用 Winston,使用消息代理或 例如,甚至将日志写入数据库。

    假设你的软件使用MongoDB,最后一个在winston-mongodb的帮助下真的很容易实现。

    1。使用 NPM 安装它

    npm install --save winston-mongodb
    

    2。配置它

    require('winston-mongodb');
    
    const options = {};
    winston.add(winston.transports.MongoDB, options);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      • 2019-09-29
      • 2015-04-15
      • 2014-11-04
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      相关资源
      最近更新 更多