gpt4 book ai didi

java - Log4j 从字符串读取配置

转载 作者:行者123 更新时间:2023-11-30 06:14:18 26 4
gpt4 key购买 nike

是否可以从字符串而不是 URI 读取 log4j 配置?或者如何将字符串转换为 URI。我有这样的事情:

String robotId = "robot23";
FileHandle file = new FileHandle(new File("./log4j2.xml"));
String fileAsString = file.readString(); //LibGDX method
fileAsString = fileAsString.replace("log.log", robotId + "-log.log");

现在如何将 fileAsString 转换为 log4j 的配置,如下所示

LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
ctx.setConfigLocation(configUri);

请注意,fileAsString 包含 xml 配置。感谢您的帮助:)

最佳答案

您是否尝试动态更改某些 log4j2 属性?您不需要以编程方式执行此操作。您可以使用Property Substitution :

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<File name="MyFile" fileName="logs/${sys:robotId}-log.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>

其中 ${sys:robotId} 是您可以设置的系统属性。

关于java - Log4j 从字符串读取配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49570944/

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