gpt4 book ai didi

java - 相对于应用程序路径的 Tomcat log4j 日志记录?

转载 作者:搜寻专家 更新时间:2023-11-01 03:10:54 24 4
gpt4 key购买 nike

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

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

我如何配置 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

最佳答案

<强>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 测试

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

关于java - 相对于应用程序路径的 Tomcat log4j 日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10532328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com