哪里保存WAR应用程序的日志文件?

时间:2010-11-14 07:51:03

标签: java logging log4j

我正在尝试在log4j.properties中配置我的Web应用程序(WAR)的日志记录:

log4j.rootCategory=WARN, RF
log4j.appender.RF=org.apache.log4j.RollingFileAppender
log4j.appender.RF.File=???/my-app.log

我应该为my-app.log指定哪个文件路径?在哪里保存这个文件?目前我正在将我的应用程序部署到Tomcat6,但谁知道将来会发生什么。谁知道将来如何在另一台机器上配置/安装Tomcat。

4 个答案:

答案 0 :(得分:2)

日志记录是部署配置描述符,因此您实际上无法进行概括。配置取决于主机和项目的其他非功能性要求。

通常在tomcat中我登录${catalina.home}/logs/myapp.log但是你可以想象如果我在weblogic中部署没有任何catalina.home,那么日志将转到c:\ logs \ myapp.log。 / p>

答案 1 :(得分:2)

我最终做的是:

  1. 在持续集成settings.xml中,我定义了一个属性log.dir
  2. log4j.properties我定义:log4j.appender.RF.File=${log.dir}/my-app.log
  3. pom.xml我指示Maven to filter .properties个文件
  4. 就是这样。现在,我可以在目标容器上控制日志文件的位置,而无需对源代码进行任何更改。

答案 2 :(得分:1)

我同意@cherouvim。通常,您应该将日志文件放在webapp之外,最好放在容器放入其日志文件的相同位置。

您不希望将它们放在webapp树中,因为如果重新部署了您的webapp,它们将会被破坏。

答案 3 :(得分:1)

  

我应该为my-app.log指定哪个文件路径?在哪里保存这个文件?

如果问题与您的个人计算机有关,那么这并不重要。把它们放在方便的地方(例如服务器日志旁边)。

如果问题是关于开发,IST,UAT等环境,通常应该将日志写入单独的/专用分区。但你应该向系统管理员提出这个问题,许多公司都有开发标准,标准化的布局。

  

目前我正在将我的应用程序部署到Tomcat6,但谁知道将来会发生什么。

这是一个黑暗中的镜头,但这是我过去使用的标准化路径:/var/log/tomcat/<PROJECTNAME>/myApp-<instance-#>.log

因为我在算命方面并不比你好,是的,谁知道未来会发生什么:)

  

谁知道将来如何在另一台机器上配置/安装Tomcat。

这是配置文件的美妙之处,您可以根据需要进行配置......甚至可以更改它:)