egg 拆分 sequelize 日志

egg中使用插件egg-sequelize

会生成很多的sequelize日志,混淆在打印的logger里

如下:


 拆分生成环境的sequelize日志到egg-sequelize中:

在config/config.prod.js中:

因为获取不到 ctx.logger 对象,所以引用egg-logger中的FileTransfer生成日志配置

import { EggAppConfig, PowerPartial, EggAppInfo } from 'egg';
const Logger = require('egg-logger').Logger;
const FileTransport = require('egg-logger').FileTransport;
const sequelizeLogger = new Logger();
export default (appInfo: EggAppInfo) => {
  // 自定义日志
  sequelizeLogger.set('file', new FileTransport({
    // 生成的文件名egg-sequelize.log
    file:  path.join(appInfo.baseDir, 'logs/egg-sequelize.log'),
    level: 'INFO',
    formatter(meta) {
      return meta.date + ' ' + meta.level + ' ' + meta.pid + ' ' + meta.message;
    },
    encoding: 'utf8',
  }));
 const config: PowerPartial<EggAppConfig> = {
   sequeliz: {
     datasources: [
       {
        delegate: 'xxx',
        baseDir: 'model/xxx',
        dialect: 'mysql',
        host: 'xxx',
        port: 3306,
        database: 'xxx',
        username: 'xxx',
        password: 'xxx',
        timezone: '+08:00',
        pool: {
          max: 3,
          min: 0,
          idle: 60000,
          acquire: 60000,
        },
        // loggging: false 设为false则不打印该数据库的sequelize的日志
        logging(...args) { // 新增自定义的部分
          // if benchmark enabled, log used
          const used = typeof args[1] === 'number' ? `[${args[1]}ms]` : '';
          sequelizeLogger.info('[egg-sequelize]%s %s', used, args[0]);
        },
      },
    ]
  }
}

 配置按小时切割

config.logrotator = {
    filesRotateByHour: [
      path.join(appInfo.baseDir, 'logs/egg-sequelize.log'),
    ],
  };

生成的sequelize日志

 

 如果需要按天分割,或者其他自定义,也可以通过调度设置

GitHub - eggjs/egg-logrotator: Log rotate plugin for eggLog rotate plugin for egg. Contribute to eggjs/egg-logrotator development by creating an account on GitHub.https://github.com/eggjs/egg-logrotator#customize

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值