Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jruby-on-Rails与Tomcat的日志记录_Ruby On Rails_Tomcat_Logging_Jruby - Fatal编程技术网

Jruby-on-Rails与Tomcat的日志记录

Jruby-on-Rails与Tomcat的日志记录,ruby-on-rails,tomcat,logging,jruby,Ruby On Rails,Tomcat,Logging,Jruby,我想通过Tomcat部署一个jruby/rails(4.1)应用程序。我通过添加 config.logger = Logger.new(STDOUT) 在config/application.rb中,日志行将转到catalina.log 我们希望应用程序日志转到一个单独的Tomcat日志文件。可能吗?如何配置它 谢谢 如果您根本没有设置config.logger。。。它将记录到servletlog所在的位置 因此,只需使用config.logger(只需保留默认值)就可以了(当然,假设

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

    config.logger = Logger.new(STDOUT)
config/application.rb
中,日志行将转到
catalina.log

我们希望应用程序日志转到一个单独的Tomcat日志文件。可能吗?如何配置它


谢谢

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

因此,只需使用
config.logger
(只需保留默认值)就可以了(当然,假设使用JRuby Rack)。否则,有两种选择:

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

  • 或者简单地
    config.logger=logger.new('logs/rails.log')
    在这种情况下,请确保将格式化程序设置为包含时间戳


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

如果以下问题的答案显而易见(我没有使用tomcat的经验),那么很抱歉:我可以在tomcat配置中为部署的应用程序设置日志文件/轮换策略吗?或者在tomcat内部运行的每个应用程序都必须处理自己的日志文件?是的,你可以。。。您需要使用第一种情况并配置tomcat的日志子系统(我确实认为默认情况是每个部署的应用程序每天轮换一次-试试看)。。我选择了更简单的第二个选项,即停止记录到stdout,并开始记录到/var/log中的目录。在
application.rb
config.logger=logger.new(Rails.root.join(“/var/log/myapp”,“Rails.env+”.log”),5,5*1024*1024)
`