JRuby on Rails应用程序中的java log4j将日志重定向到单独的文件
我想在我的JRuby on Rails应用程序中获得更细粒度的日志记录。我介绍了log4j。我当前有一个如下所示的属性文件:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
#
log4j.logger.Rails=INFO, A
log4j.appender.A=org.apache.log4j.RollingFileAppender
log4j.appender.A.File=/usr/share/tomcat6/logs/production.log
log4j.appender.A.MaxFileSize=10000KB
log4j.appender.A.MaxBackupIndex=5
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
去拿铁轨。若要使用此功能,我将弹出以下初始值设定项:
org.apache.log4j.PropertyConfigurator.configure("#{::Rails.root.to_s}/config/log4j.properties")
现在,我还想做一些事情,比如:
Rails.logger.feature_1("Log to feature_1.log")
Rails.logger.feature_N("Log to feature_N.log")
实现这一点的最佳方法是什么,这样就不会将所有内容都放在一个日志文件中
还需要注意的是,我正在使用博客中提到的适配器:http://squaremasher.blogspot.com/2009/08/jruby-rails-and-log4j.html
# 1 楼答案
首先,您应该为
log4j.properties
文件中需要的每个“功能”定义一个appender/logger配置:这样,每个记录器都有自己的严重性过滤器和目标文件
然后,您可以根据在月球的Ruby一侧调用的方法(来自您提供的示例适配器)来选择它,而不是总是使用同一个记录器:
未经测试,但我想你会明白的