【问题标题】:Tomcat log4j logging relative to application path?Tomcat log4j 日志记录相对于应用程序路径?
【发布时间】:2012-05-18 22:14:41
【问题描述】:

我有一个 Google Web Toolkit (GWT) - 我以三种不同模式运行的应用程序:

  1. 部署在 Tomcat 上
  2. 托管模式
  3. Junit 测试

如何配置 log4j.properties 以使每种模式都能正确记录?

如果我使用 ${catalina.base},我无法在托管模式和 Junit 测试中使用它,如果我只使用相对的 logs/myapplication.log,它将无法与 Tomcat 一起使用,因为我得到:

java.io.FileNotFoundException: log/myapplication.log (Keine Berechtigung)

如果可以相对于应用程序路径指定日志目录,我不介意将日志放在 webapps/myapplication/logs 中,但如果日志文件仅在 /var/log/tomcat7/ 中也可以。 .. 或其他一些日志文件夹。

目前我的 log4j.properties 包含以下文件记录条目:

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=${catalina.base}/logs/myapplication.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%c %C %d{ABSOLUTE} %-5p %C{1}: %m%n
log4j.appender.file.threshold=DEBUG
log4j.appender.file.Append=false

【问题讨论】:

  • 我不确定它是否适用于您的所有情况,但您可以尝试登录到标准输出。 Tomcat 将在它的日志目录中的日志文件中捕获它。你没有说服务器在托管模式下是什么,但这也可能在那里工作。我相信 JUnit 也会捕获标准输出。
  • 是的,我已经另外登录到标准输出,但我不想在启动程序时遇到所有这些异常。
  • 什么是“所有这些例外”?
  • @GreyBeardedGeek Exeptions like log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /logs/user_sessions.html (Datei oder Verzeichnis nicht gefunden) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>...(每个 Appender 一个)
  • 您是否只需要找到一种方法来为托管和 junit 模式设置 catalina.base 系统属性?我对 GWT 了解不多,但我相信这是可能的。

标签: java gwt tomcat log4j


【解决方案1】:

1.部署在 Tomcat 上

我登录到 ${catalina.home},但您的配置看起来仍然不错。 我在 Windows 上本地运行我的配置,当我启动服务器时没有看到任何关于找不到该文件夹​​的错误。如果您想指向 Windows 上的某个位置,请尝试在运行配置中将以下内容添加到您的参数中:

-Dcatalina.base="C:\somefolder\" -Dcatalina.home="C:\somefolder\"

2。托管模式

在这种模式下,您在 IDE 中本地运行它。因此,您不需要记录到文件。 在这种情况下,将stdout appender 添加到您的 log4j.properties

log4j.rootLogger=DEBUG, stdout, A

这样,您将在 IDE 的控制台中看到日志消息

3. JUnit 测试

使用单独的日志配置文件进行测试(这是标准做法)。这使您可以更好地控制日志级别,而不会影响您的生产日志级别。

【讨论】:

    猜你喜欢
    • 2015-05-09
    • 2012-06-17
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多