gpt4 book ai didi

java - 使用 log4j 根据文件夹名称创建多个日志文件

转载 作者:行者123 更新时间:2023-12-01 14:10:56 24 4
gpt4 key购买 nike

我有多个文件夹,每个文件夹都有一些 xml。

在循环开始时在 for 循环中解码 XML 时,我根据要解码的文件夹 xml 设置文件夹变量。但我最终无法更改文件夹变量的值。

Log4j 文件:

log4j.rootLogger=DEBUG, theFileAppender log4j.category.org.exolab.castor.xml=ERROR, theFileAppender log4j.category.org.castor.core.util=ERROR, theFileAppender

log4j.appender.theFileAppender=org.apache.log4j.FileAppender log4j.appender.theFileAppender.File = ${folder}/error.log

log4j.appender.theFileAppender.Append=false

log4j.appender.file.MaxFileSize=10MB

log4j.appender.file.MaxBackupIndex=1 log4j.appender.theFileAppender.layout=org.apache.log4j.PatternLayout log4j.appender.theFileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c %x - %m%n

循环开始,我正在设置文件夹:

System.setProperty("folder", "E:/Logging/folderName");

循环结束时:我通过以下方式设置文件夹:

Properties properties = new Properties(System.getProperties()); properties.setProperty("folder","E:/Logging/folderName");

folderName 是我的文件夹名称。

它创建所需的文件夹,但附加到在循环开始时创建的文件夹中创建的错误日志文件。

请帮助我如何设置变量。

最佳答案

您可以通过调用 log4j API 来更改文件夹,如下所示:

获取您的root logger,然后通过name修改您的appender(在本例中,正如您的问题所说:“theFileAppender”)。

String logFolderName = "newfoldername";
String logFilePath = "E:/Logging/" + logFolderName + "/error.log";

Logger logger = Logger.getRootLogger();
FileAppender appender = (FileAppender)logger.getAppender("theFileAppender");
appender.setFile(logFilePath);
appender.activateOptions();

如您所见,您只需根据要创建的新日志文件的需要修改 logFolderName 变量即可。

关于java - 使用 log4j 根据文件夹名称创建多个日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18535222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com