【问题标题】:Log4j log file per project每个项目的 Log4j 日志文件
【发布时间】:2013-10-01 08:33:37
【问题描述】:

我有 9 个运行 log4j 的 tomcat 项目,现在如何使用相同的 log4j.properties 文件为每个项目创建不同的日志文件

使用我的以下设置,它会创建不同的文件,但日志会写入一个文件中

log = /usr/logs
log4j.rootLogger = DEBUG, FILE

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/std.out

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d [%-5p] [%C] [%t] [%L] - [%m] %n

PropertyConfigurator.configure(props); 之前,我正在更新以下属性,因此创建了一个文件,但是如何进行这些设置以将日志写入相应的日志文件

log4j.appender.FILE.File

【问题讨论】:

    标签: java tomcat logging log4j


    【解决方案1】:

    特别是在处理大型项目时,运行单独的 Tomcat 实例会派上用场:如果您弄乱了一个项目的服务器配置,并不意味着其他项目将不再运行,而且,仅仅因为配置一个项目需要改变,并不意味着其他项目的配置应该改变。

    如果您必须连续运行这些应用程序(不太可能,但仍然),您可能希望不时重新启动您的容器,如果您不将所有项目同时“离线”可能会很好时间。

    但是,在您的情况下,最有益的区别是:对于每个单独的 Tomcat 安装(无论如何只需要几 mb,这并不意味着您将用完磁盘空间),您可以指定一个单独的日志文件。 (但请记住在执行此操作时使用不同的端口,否则您将无法同时运行它们)

    【讨论】:

    • 我只有一个 tomcat 实例,不能有多个实例,所有我需要为在同一个容器中运行的项目有单独的日志文件,以及用于 log4j 的通用配置文件
    【解决方案2】:

    如果确实需要,您可以在一个 log4j 配置中定义单独的记录器,但这必须由您的应用程序支持,它必须能够选择正确的记录器。 Stultuske的解决方案比较合适。

    【讨论】:

      【解决方案3】:

      你需要指定文件名:

      log4j.appender.File.File=/location/nameLogFile.log
      

      【讨论】:

      • 我正在这样做,但它正在做的是当我设置此属性并调用 PropertyConfigurator.configure(props);,在 tomcat lib 中的 jar 的常用方法中,甚至从不同的应用程序正在访问此文件,我希望将日志写入相应的项目日志文件中
      • 你不能给每个应用程序自己的 log4j.properties 文件吗?
      猜你喜欢
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 2010-09-26
      • 2014-11-17
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多