gpt4 book ai didi

ruby-on-rails - 每个环境有多个 config.logger

转载 作者:行者123 更新时间:2023-12-04 11:27:34 29 4
gpt4 key购买 nike

我正在使用 Rails 5 并将应用程序日志发送到 papertrail在我的 上使用此代码段环境/production.rb

config.logger = ActiveSupport::TaggedLogging.new(
RemoteSyslogLogger.new(
'logs6.papertrailapp.com', 41364,
program: "rails-#{Rails.env}"
)
)

有时将日志发送到 papertrail 会有延迟,所以我这样做 tail -f production.log手动但它没有显示任何内容,因为日志被发送到 papertrail。

要查看尾日志,我需要替换 config.logger
config.logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(File.join(Rails.root, "log", "#{Rails.env}.log")))

在 Rails 中有没有办法可以在同一环境中使用多个记录器?基本上我想将日志发送到 papertrail 或使用尾部日志手动查看日志?

最佳答案

您可以使用自定义记录器扩展 Rails.logger:

syslog_logger = ActiveSupport::TaggedLogging.new(
RemoteSyslogLogger.new(
'logs6.papertrailapp.com', 41364,
program: "rails-#{Rails.env}"
)
)
Rails.logger.extend(ActiveSupport::Logger.broadcast(syslog_loger))

您可以在初始化文件中执行此操作,也可以直接在您的环境配置文件中执行此操作,但是您更喜欢这样做。

关于ruby-on-rails - 每个环境有多个 config.logger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50055126/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com