eggjs日志路径问题

本文探讨了eggjs框架中日志管理的问题,特别是日志路径在开发环境和生产环境的区别。在开发环境(env:local, unittest),日志位于项目根目录的logs文件夹,而在生产环境(env:prod),日志存储于系统根目录。egg-logger模块提供企业级日志支持,而日志切割则由egg-logrotator插件实现,通常按日期进行切割,例如example-web.log-YYYY-MM-DD。文章还提及了按文件大小切割的日志管理选项。" 129320926,17265740,Qt Charts 实践:绘制折线图指南,"['Qt开发', '图形界面', '图表绘制']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

eggjs内置了强大的企业级日志支持,由egg-logger模块提供。
egg项目中,所有日志文件默认都放在appInfo.root/logs/appInfo.root/logs/{appInfo.name}路径下

问题是,在项目目录的logs下能够找到开发环境下的日期,却找不到生产环境下的日志,这是为什么呢?
原因在于,虽然日志文件都是保存在appInfo.root/logs/appInfo.root/logs/{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,
    },
  };
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值