You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现将Strapi应用运行日志存储到本地日志文件的有效方案?

Strapi 日志存储到本地文件的实现方案

Strapi 底层默认使用 Pino 作为日志框架,不需要额外安装第三方依赖,修改内置日志配置即可实现日志落盘,以下是可直接复用的操作步骤:


方案1:基础配置(同时保留控制台输出+文件输出)

  • 在你的Strapi项目根目录的config文件夹下,新建logger.js文件(如果已有直接修改即可)
  • 填入以下配置内容:
const pino = require('pino');

module.exports = ({ env }) => ({
  transports: env('NODE_ENV') === 'production' ? [
    // 控制台输出
    {
      target: 'pino-pretty',
      options: {
        colorize: true,
        translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',
        ignore: 'pid,hostname'
      }
    },
    // 本地文件输出
    {
      target: 'pino/file',
      options: {
        // 自定义日志文件存储路径,这里默认存在项目根目录的logs文件夹下
        destination: `${__dirname}/../logs/strapi.log`,
        // 设为true时日志追加写入,不会覆盖历史日志
        append: true,
        mkdir: true
      },
      level: 'info'
    }
  ] : [
    // 开发环境仅保留控制台输出,可根据自己需求调整
    {
      target: 'pino-pretty',
      options: {
        colorize: true,
        translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',
        ignore: 'pid,hostname'
      }
    }
  ]
});
  • 重启Strapi服务即可生效,日志会自动写入你指定路径的.log文件中。

方案2:进阶配置(日志按天切割,避免单文件过大)

如果需要自动按天拆分日志、定期清理过期日志,可以修改文件输出的配置为如下内容:

// 首先安装依赖:npm install pino-rotating-file
{
  target: 'pino-rotating-file',
  options: {
    file: `${__dirname}/../logs/strapi-%DATE%.log`,
    // 按天切割
    period: '1d',
    // 最多保留14天日志
    maxFiles: 14,
    // 单文件最大100M,超过自动拆分
    maxSize: '100M'
  },
  level: 'info'
}

注意事项

  • 需要确保你配置的日志存储路径,Strapi运行的进程对应账号有读写权限
  • 生产环境可以把日志级别调整为warn或error,减少不必要的日志写入
  • 如果你只需要文件输出不需要控制台输出,直接删除transports数组里对应控制台的配置项即可

内容的提问来源于stack exchange,提问作者Guido Molino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:45:06