Min*_*mar 7 logging node.js winston
我创建了一个nodejs应用程序,它封装了四个nodejs进程.到目前为止,所有单个nodejs进程都使用winston npm来记录到不同的日志文件.现在我想创建一个日志文件,每个节点进程都可以记录.
winston是否隐式确保日志数据的序列化以使其处理安全(多个进程写入同一文件而不会打扰竞争条件或死锁等)?或者它的开发人员工作,以确保只有一个进程在特定时间专门写入日志文件.
Winston 是否隐式地确保日志数据的序列化以使其处理安全?
答案是否定的。
当您有多个进程通过 Winston 将日志写入同一文件时,数据会丢失。这实际上是一个他们决定不正确解决的已知问题。
有很多选择,例如,您可以更改日志记录工具、使用进程间通信并仅通过主进程调用 Winston、使用消息代理甚至将日志写入数据库。
假设您的软件使用 MongoDB,最后一个在winston-mongodb的帮助下非常容易实现。
npm install --save winston-mongodb
Run Code Online (Sandbox Code Playgroud)
require('winston-mongodb');
const options = {};
winston.add(winston.transports.MongoDB, options);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |