egg发布版日志问题
发布于 2 年前 作者 entrehuihui 4010 次浏览 来自 问答

egg用的是egg-logrotator日志插件, 在本地测试的时候可以正常打印日志,可是一再线上发布版本就打印不了日志, 不知道是什么问题?有没有遇到过这样子的问题的

12 回复

发布的日志在用户目录的logs下

cd ~/logs/

@wbget 找到问题了, 要指定环境变量目录, 不然发布的日志放到了用户的家目录里面

@atian25 找到问题了, 要指定环境变量目录, 不然发布的日志放到了用户的家目录里面

已经解决问题:找到问题了, 要指定环境变量目录 MOCK_HOME_DIR, 不然发布的日志放到了用户的家目录里面 参考链接:https://www.javascriptcn.com/read-9870.html

MOCK_HOME_DIR 是测试的时候用的。。。 不要乱搞。。。 给你的文档里面写的很清楚了。。。 如果你不想这样,就自己在 config 里面修改你想要的地址。

@atian25 https://eggjs.org/zh-cn/core/logger.html#日志路径 是配置路径没问题,但是 egg-scripts 部署生产环境的时候,还会在${appInfo.root}/logs/${appInfo.name 下打印日志,目前找到的办法就是 设置 MOCK_HOME_DIR,文档只说配置这个,但是 egg-scripts 启动之后 ${appInfo.root}/logs 还是会正常打印 exports.logger = { dir: ‘/path/to/your/custom/log/dir’, };

@llsldwy 你说的是master-stdout.log和master-stderr.log日志么?可以通过设置--stdout--stderr指定目录,比如:

 --stdout=$PWD/logs/master-stdout.log --stderr=$PWD/logs/master-stderr.log

@jamiesoung 对,谢谢你对回答,这俩日志我已经找到修改方式了,但是 在${appInfo.root}/logs 下还是有两个日志,egg-schedule.log 和 alinode,我有点不太明白,我用 egg-scripts 启动项目,但是没有下载 egg-alinode,但是为什么还会产生这个日志呢,这个日志如何改变地址。。。。。@jamiesoung 这个你知道吗?在线等,谢谢!

@llsldwy alinode的日志位置是在egg-scripts里定义的,如果使用alinode可以自定义位置,不使用的话只是个空目录,也不用管吧。至于egg-schedule.log的日志位置在config.js里设置,比如:

config.customLogger = {
        scheduleLogger: {
            file: path.join(appInfo.baseDir, 'logs/egg-schedule.log')
        }
    }

@jamiesoung 你好,谢谢您的回答。egg-schedule.log 这个的设置已经没问题了。 alinode 确实是一个空目录,但是对于生成环境 公司禁止向${appInfo.root} 创建log日志,我去 egg-script 源码里面找了一下 应该是设置NODE_LOG_DIR 环境变量

// for alinode env.ENABLE_NODE_LOG = ‘YES’; env.NODE_LOG_DIR = env.NODE_LOG_DIR || path.join(logDir, ‘alinode’); yield mkdirp(env.NODE_LOG_DIR);

回到顶部