Java 动态设置Log4j.xml日志文件名

Java 动态设置Log4j.xml日志文件名,java,log4j,Java,Log4j,我想为log4j.xml设置日志文件名。我们每天都在进行滚动。日志文件名格式为hostname\u current datetime.log。我将应用服务器用作JBoss EAP 6.2您可以使用PropertyConfigurator.configure(path.log4j.properties)在运行时配置log4j; 现在,如果要更改日志文件名,可以每次使用不同的路径或动态更改属性文件。 也许有更好的方法不用这个文件,但我不知道。我不知道你是用log4j 1.x还是log4j 2.x。

我想为log4j.xml设置日志文件名。我们每天都在进行滚动。日志文件名格式为hostname\u current datetime.log。我将应用服务器用作JBoss EAP 6.2

您可以使用PropertyConfigurator.configure(path.log4j.properties)在运行时配置log4j; 现在,如果要更改日志文件名,可以每次使用不同的路径或动态更改属性文件。
也许有更好的方法不用这个文件,但我不知道。

我不知道你是用log4j 1.x还是log4j 2.x。 在log4j中有一些附加程序,您可以在其中明确定义日志文件的名称以及log4j必须在哪里部署它等等

如果您想动态地设置它,您必须通过程序或其他方式重写log4j.xml

下面是一个使用
文件追加器的设置文件的剪贴:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <File name="MyFile" fileName="logs/anameyouwant.log" append="true">
      <PatternLayout>
        <Pattern>%d{HH:mm:ss.SSS} [%-5level] %msg [%t] %logger{30} %n</Pattern>
      </PatternLayout>
    </File>
  </Appenders>
  <Loggers>
    <Root level="all">
      <AppenderRef ref="MyFile"/>
    </Root>
  </Loggers>
</Configuration>