我已经将代码从log4j更新为log4j 2.17.1,并希望将日志文件存储到Apache下的服务器。我正在使用下面提到的log4j2.属性。
当我运行代码时,日志文件将在代码结构下打印(请参阅下面所附的屏幕快照),但我想在apache下的QA服务器中打印日志文件。
请帮我解决这个问题。
发布于 2022-02-01 02:53:37
TL;DR:使用${sys:catalina.base}
。
Log4j 2.x中的属性替换不同于Log4j 1.x (cf )。文档)。最显著的变化是:
${catalina.base}
在Java属性中查找,如果系统属性不存在,则在配置文件中查找,在这两种情况下,如果不能解析属性,则占位符将保持不变。
在Log4j 2.x中,所有外部属性查找都必须使用适当的前缀进行前缀。与Log4j 1.x行为完全等价的是${sys:catalina.base}
。因此,您可以使用:
# Fallback
property.catalina.base=.
appender.rolling.fileName=${sys:catalina.base}/logs/aseq_wiptmobile_qa-1.applog
https://stackoverflow.com/questions/70937295
复制相似问题