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

Rails 4.2搭配Lograge如何为每条日志行添加日期时间前缀?

Rails 4.2 + Lograge 0.3.6 日志添加日期时间前缀配置方案

方案1:仅给Lograge输出的请求日志加时间戳

直接修改config/environments/development.rb中的Lograge配置,新增自定义字段即可:

config.lograge.enabled = true
config.lograge.formatter = CustomLogstash.new
# 新增以下配置添加时间戳
config.lograge.custom_options = lambda do |event|
  {
    # 可根据需求调整时间格式,比如改为 strftime("%Y-%m-%d %H:%M:%S") 输出本地可读格式
    timestamp: Time.now.utc.iso8601
  }
end

该方案添加的时间戳会直接合并到Logstash格式的JSON日志结构中,不会影响其他非Lograge输出的日志格式。

方案2:给所有日志(含Rails默认日志)统一加时间前缀

如果需要所有写入development.log的日志行都带时间前缀,可以直接修改Rails全局日志格式化器,同样在config/environments/development.rb中添加配置:

# 初始化日志器
config.logger = ActiveSupport::Logger.new(config.paths["log"].first)
# 自定义日志格式,可按需调整时间格式和输出字段顺序
config.logger.formatter = proc do |severity, datetime, progname, msg|
  "[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}] #{severity} #{msg}\n"
end

注意事项

  • 两种方案按需二选一即可,同时开启可能会导致时间戳重复输出
  • 若需要使用本地时区时间,把代码中的Time.now.utc替换为Time.now即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:45:04