【问题标题】:How to give multiple file names in log4j2 configuration for java opts?如何在 java opts 的 log4j2 配置中给出多个文件名?
【发布时间】:2018-07-18 11:58:56
【问题描述】:

我正在按照本手册在我的 java 应用程序中配置 log4j2- https://logging.apache.org/log4j/2.x/manual/configuration.html

但是我在提供文件路径时遇到了问题,因为我有两个 xml 文件-

SERVICE_NAME="mailServer"
SERVICE_HOME=${SERVICE_HOME:="/srv/osgi"}
SERVICE_CONF=${SERVICE_CONF:="${SERVICE_HOME}"}

SERVICE_LOG4J_FILE=${SERVICE_LOG4J_FILE:="${SERVICE_CONF}/${SERVICE_NAME}-log4j.xml"}
SERVICE_LOG4J_OPTS=${SERVICE_LOG4J_OPTS:="-Dlog4j.configurationFile=file:${SERVICE_LOG4J_FILE}"}

现在我也想给出 log4j2.xml 的位置。

那么如下给出逗号分隔的文件名是否正确-

 SERVICE_LOG4J_FILE=${SERVICE_LOG4J_FILE:="${SERVICE_CONF}/${SERVICE_NAME}-log4j.xml", "${SERVICE_CONF}/log4j2.xml"}

【问题讨论】:

  • 是的,在 Composite Configuration 部分中使用逗号分隔的路径是正确的。但是,我不太明白您在这里尝试做什么。如果要生成多个不同的文件,为什么不在 log4j2(xml、properties、yaml 等)文件中使用不同的 appender?
  • @JorgeCampos- 在生产环境中,文件mailServer-log4j.xml 已经存在,但文件log4j2.xml 是最近添加的,我不想搞砸事情以防出错。跨度>
  • 如果您在项目中添加了 log4j2.xml 文件,您无需担心旧的“mailServer-log4j.xml”log4j 会忽略它。只需确保它具有正确的配置(从 1.x 迁移到 2.x),以便在部署新版本之前使用另一个环境(类似于生产)对其进行测试,确保它按预期工作然后部署
  • 是的,我在不同的环境中做同样的事情。问题是我们通过提供此类命令行选项在 AWS 环境中使用 mailServer-log4j.xml 文件,并且需要添加 log4j2.xml 以及一些守护程序服务日志处理。所以不确定它在 AWS 级别的表现如何。检查不同的环境是我的方式。
  • 只要将 log4j2.xml 文件添加到项目的正确位置(在类路径中)就可以了。只需确保从配置中删除另一个,因为配置在 log4j 文件解析查找器中具有更高的优先级

标签: java spring log4j2


【解决方案1】:

你可以使用它

# Root logger option

log4j.rootLogger=INFO, DEBUG, file,console

# Console Appender

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.Append=true

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss,SSS} %-5p [ %M ]  ( %C )  %c{1}:%L - %m%n


# File Appender

log4j.appender.file=org.apache.log4j.FileAppender

log4j.appender.file.DatePattern='.'yyyy-MM-dd-HH-mm

log4j.appender.file.Append=true

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss,SSS} %-5p [ %M ]  ( %C )  %c{1}:%L - %m%n

log4j.appender.file.File=C:/log/SpringMain.log

log4j.appender.file.MaxBackupIndex=10

【讨论】:

  • 如何在java选项中给出属性文件路径?
猜你喜欢
  • 2014-10-07
  • 2014-06-05
  • 1970-01-01
  • 2019-11-27
  • 2014-10-18
  • 2022-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多