是否可以在启用Log4J的情况下将基于Java的应用程序部署到Heroku?根据他们的docs:
写入标准输出(stdout)或标准错误(stderr)的任何内容 被捕获到您的日志中。这意味着您可以从任何地方登录 在您的应用程序代码中使用简单的输出语句。
在Ruby中,你可以使用类似的东西:
puts "Hello, logs!"
在Java中:
System.err.println("Hello, logs!"); System.out.println("Hello, logs!");
答案 0 :(得分:2)
这实际上取决于您想要做什么样的日志记录(或者您尝试使用哪种日志记录)。请注意,由于Heroku' ephemeral filesystem,file
appender将无用。我假设附加到stdout
,也会因为你给出的原因输出到你的Heroku日志。
这是一个名为Airbrake的附加组件上的Heroku doc,它充当Log4J的附加器: https://devcenter.heroku.com/articles/airbrake#java
编辑:我已经测试了登录到stdout,它确实登录到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