eggjs日志路径问题

eggjs内置了强大的企业级日志支持,由egg-logger模块提供。
egg项目中,所有日志文件默认都放在 a p p I n f o . r o o t / l o g s / {appInfo.name}路径下

问题是,在项目目录的logs下能够找到开发环境下的日期,却找不到生产环境下的日志,这是为什么呢?
原因在于,虽然日志文件都是保存在 a p p I n f o . r o o t / l o g s / {appInfo.name}路径下的,但是开发环境和生产下的appInfo.root的值却是不一样的,在本地开发环境(env:local)和单元测试环境(env:unittest)下,appInfo.root为baseDir,即项目根目录;而在生产环境(env:prod)下,appInfo.root为HOME,等价于process.env.HOMEPATH,即系统根目录下

eggjs框架内置日志切割,由egg-logrotator插件提供。
默认以日期进行切割,如:当写入的日志为example-web.log,当凌晨00:00时,会对日志进行切割,把过去一天的日志按example-web.log-YYYY-MM-DD的形式切割为单独的文件。同时也支持自定义切割方式。
如按文件大小切割:

const path = require('path');

module.exports = appInfo => {
  return {
    logrotator: {
      filesRotateBySize: [
        path.join(appInfo.root, 'logs', appInfo.name, 'egg-web.log'),
      ],
      maxFileSize: 2 * 1024 * 1024 * 1024,
    },
  };
};

猜你喜欢

转载自blog.csdn.net/csm0912/article/details/80894177