因为图片太多转移不方便。我发在开源中国了。链接如下: 链接在此
是的,winston在pm2下也有类似问题,需要特殊配置
同样出现过日志丢失
@kzfile winston也会丢吗?
@brucecodezone 同是天涯沦落人
最近才碰到。。。单独启动应用,日志正常记录,但是pm2启动,日志就不打了。。。
@xwwscu 看模式吧。fork模式不会出问题。cluster模式才会有。
踩过一波,我的解决方案是每个进程写不同文件
[CNodeMD]
pm2-intercom太老,另外通信的进程重启后日志就不打了
[CNodeMD]
支持^_^
@dbit-xia 对,每个进程打到不同的文件也是一个方案。
@dbit-xia 你指的通信的进程重启后日志就不打了是什么意思?求指教
@Gitforxuyang 用pm2-intercom时,你试试restart那个NODE_APP_INSTANCE=0的进程,然后其它子进程console.log的日志就不会继续打印出来了 我之前试的结果是这样的,所以我就没用pm2-intercom 你可以再确认一下
我最终是这样用的:
let filename = global.config.type;
let filenameAppend = process.env.NODE_APP_INSTANCE;
if (filenameAppend) filename += '-' + filenameAppend;
log4js.configure({
....
pm2: false,
disableClustering: true //默认使用当前进程收集日志
});
@dbit-xia 你使用pm2-intercom时是不是pm2下管理的不止4个进程? restart重启后进程在pm2下的id会变。 如果你启动了多个进程,就会发生我在博客中提到的pm2-intercom只会向前4个进程发送消息的问题。
@Gitforxuyang restart/reload后,id不会变的, 我是用cluster模式起两个进程测试的,pm2里加上pm2-intercom总共3个进程, 感觉水有点深,还是不要过多依赖,各自独立写文件会比较简单,写文件的性能应该不会低于TCP性能
[CNodeMD]