代码之家  ›  专栏  ›  技术社区  ›  yegor256

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

  •  3
  • yegor256  · 技术社区  · 14 年前

    我正在尝试为我的web应用程序(WAR)配置日志,在 log4j.properties :

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

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

    4 回复  |  直到 14 年前
        1
  •  2
  •   cherouvim    14 年前

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

    通常在tomcat中我会登录到 ${catalina.home}/logs/myapp.log 但是你可以想象如果我在weblogic中部署 catalina.home 所以日志将转到c:\ logs\myapp.log。

        2
  •  2
  •   yegor256    14 年前

    我最后做的是:

    1. 持续集成 settings.xml 我定义了一个属性 log.dir
    2. log4j.properties 我定义: log4j.appender.RF.File=${log.dir}/my-app.log
    3. pom.xml 我教马文 to filter .properties 文件夹

    就这样。现在,我可以控制日志文件在目标容器上的位置,而无需更改源代码。

        3
  •  1
  •   Stephen C    14 年前

    我同意@cherouvim。一般来说,您应该将日志文件放在webapp外部,最好放在容器放置其日志文件的同一位置。

    你不想把它们放在webapp树中,因为如果你的webapp被重新部署的话,它们会被击垮的。

        4
  •  1
  •   Pascal Thivent    14 年前

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

    如果问题是关于你的 个人的 机器,没什么大不了的。把它们放在方便的地方(例如,服务器日志旁边)。

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

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

    这是在黑暗中拍摄的,因为这里是我过去使用的标准化路径: /var/log/tomcat/<PROJECTNAME>/myApp-<instance-#>.log .

    因为我在算命方面并不比你强,是啊,谁知道将来会发生什么呢:)

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

    这是配置文件的优点,您可以根据需要配置它。。。甚至改变它:)