我想设置log4j.xml的日志文件名。我们正在进行每日翻转。日志文件名格式为hostname_current datetime.log。我正在使用应用程序服务器作为JBoss EAP 6.2
答案 0 :(得分:0)
您可以使用PropertyConfigurator.configure(path.log4j.properties)在运行时配置log4j; 现在,如果要更改日志文件名,可以每次使用不同的路径或动态更改属性文件。 也许有一种更好的方法可以在不使用文件的情况下做到这一点,但我不知道。
答案 1 :(得分:0)
我不知道你是否使用log4j 1.x或log4j 2.x. 在log4j中有一些appender,你可以清楚地定义你的日志文件的名称以及log4j必须在哪里部署它等等......
如果要动态设置它,则必须通过程序或其他任何方式重写log4j.xml。
以下是使用FileAppender
:
<?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>
在本例中,我使用FileAppender将日志写入/logs/anameyouwant.log
。它将信息附加到日志文件。
这是你必须动态重写的部分:fileName="logs/anameyouwant.log"
我没有看到解决问题的其他方法,除了这个解决方案,你在运行程序之前重新开始设置文件并开始记录。
这可能是一些有用的链接: