2013-04-09 189 views
0

是否有可能部署基于Java的应用程序启用Log4J Heroku?根据他们的docsheroku部署与Log4J

任何写到标准输出(输出)和标准错误(错误) 被捕获到你的日志。这意味着您可以使用简单的输出语句从应用程序代码中的任何地方登录 。

在Ruby中,你可以使用类似:

puts "Hello, logs!" 

在Java:

System.err.println("Hello, logs!"); 
System.out.println("Hello, logs!"); 

回答

1

这真的取决于你想要什么样的记录做(或什么的appender你”重新尝试使用)。请注意,由于Heroku的ephemeral filesystemfile appender将毫无用处。然而,我认为追加到stdout也会输出到您的Heroku日志中,原因是您给的。

这里是一个附加的所谓的减速板,它充当Log4J的一个appender一个Heroku的文档: https://devcenter.heroku.com/articles/airbrake#java

编辑:我已经测试记录到标准输出,并且它确实记录到Heroku的日志。

log4j.properties,如果你有兴趣(漂亮的标准):

log4j.rootLogger= error, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%p @ %l > %m%n 
+0

值得注意的是:Heroku的鼓励应用程序,坚持“12要素”的设计,其中特别提出登录到标准输出(请参见http:/ /12factor.net/logs)。这个想法是,以这种方式将日志信息聚合到单个流中 - 跨服务器和服务更容易。 – bimsapi 2013-12-19 02:46:23