1

是否可以在启用 Log4J 的情况下将基于 Java 的应用程序部署到 Heroku?根据他们的文档

任何写入标准输出 (stdout) 或标准错误 (stderr) 的内容都会被捕获到您的日志中。这意味着您可以使用简单的输出语句从应用程序代码中的任何位置登录。

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

puts "Hello, logs!"

在 Java 中:

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

1 回答 1

2

这实际上取决于您想要执行哪种日志记录(或您尝试使用的附加程序)。请注意,file由于 Heroku 的临时文件系统,附加程序将毫无用处。但是,由于您给出的原因,我认为附加到stdout也会输出到您的 Heroku 日志。

这是一个名为 Airbrake 的附加组件上的 Heroku 文档,它充当 Log4J 的附加器: 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
于 2013-12-11T21:10:36.437 回答