【问题标题】:Jruby on Rails logging with TomcatJruby on Rails 使用 Tomcat 进行日志记录
【发布时间】:2014-09-05 18:47:34
【问题描述】:

我有一个想要通过 Tomcat 部署的 jruby/rails (4.1) 应用程序。我通过添加

通过标准输出制作了应用程序日志
    config.logger = Logger.new(STDOUT)

config/application.rb,日志行将转到catalina.log

我们希望应用程序日志转到单独的 Tomcat 日志文件。可能吗?怎么配置?

谢谢!

【问题讨论】:

    标签: ruby-on-rails tomcat logging jruby


    【解决方案1】:

    如果您根本没有设置config.logger ...它将记录到servlet log 所在的位置

    所以根本不用config.logger 做任何事情(只需保留默认值)它应该可以工作(当然假设是JRuby-Rack)。否则有2个选项:

    • 使用 Java 日志库(在 TC 为 JUL 或 Log4J 的情况下)和configure JRuby-Rack 进行委托

    • 或者在这种情况下只是config.logger = Logger.new('logs/rails.log'),请确保您设置了包含时间戳的格式化程序

    注意:请注意,在第一种情况下,Java 日志库将在信息级别接收来自 Rails 的所有日志(记录器未映射“一对一”)...这个在未来的 JRuby-Rack 1.2 版本中可能会发生变化。

    【讨论】:

    • 很抱歉,如果以下问题的答案很明显(我没有使用 tomcat 的经验):我可以在 tomcat 配置中为已部署的应用程序设置日志文件/轮换策略吗?还是每个在 tomcat 中运行的应用程序都必须处理自己的日志文件?
    • 嗯,是的,您可以...您需要使用第一种情况并配置 tomcat 的日志记录子系统(我确实认为每个部署的应用程序的默认设置是每天轮换 - 试试看)。
    • 好的.. 我选择了更简单的第二个选项,停止记录到标准输出并开始记录到 /var/log 中的目录。在application.rb:config.logger = Logger.new(Rails.root.join("/var/log/myapp",Rails.env + ".log"),5,5*1024*1024)`
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多