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

基于log4rs YAML配置为日志文件名添加当前日期的问题

解决log4rs配置中日志文件名添加日期的问题

你遇到的问题根源在于使用了file类型的appender,它不支持解析路径中的日期占位符。要实现带日期的每日滚动日志文件,必须改用rolling_file类型的appender,并配置正确的滚动策略与文件名模式。

修改后的YAML配置如下:

refresh_rate: 600 seconds
appenders:
  stdout:
    kind: console
    encoder:
      pattern: "{d(%Y-%m-%d %H:%M:%S)(utc)} - | {h({l}):5} | {f}:{L} — {m}{n}"
  file_logger:
    kind: rolling_file
    filename_pattern: "logs/Application.%Y-%m-%d.log"
    encoder:
      pattern: "{d(%Y-%m-%d %H:%M:%S)(utc)} - | {h({l}):5} | {f}:{L} — {m}{n}"
    policy:
      kind: time
      pattern: "%Y-%m-%d"
      base: "midnight"
      offset: 0
      max_files: 7
root:
  level: info
  appenders:
    - stdout
    - file_logger

关键说明:

  • 替换file为rolling_file类型,这是log4rs中支持滚动日志与文件名模式解析的专属appender。
  • filename_pattern字段支持标准日期格式化占位符,%Y-%m-%d会自动替换为当前的年-月-日,生成你需要的logs/Application.2023-01-04.log格式文件名。
  • 配置time类型的滚动策略,设置base: "midnight"可实现每日午夜自动生成新的日志文件,max_files用于指定保留的历史日志文件数量。
  • 若不需要单独的活动日志文件(始终直接写入带日期的文件),无需配置path字段,仅保留filename_pattern即可。

如果需要同时按文件大小和时间双条件滚动,可改用复合策略配置:

policy:
  kind: compound
  trigger:
    kind: size
    limit: 100mb
  roller:
    kind: time
    pattern: "%Y-%m-%d"
    base: "midnight"
    offset: 0
    max_files: 7

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:20:30