【发布时间】:2021-09-17 02:01:05
【问题描述】:
我想动态设置 FileAppender 将写入的文件名。 我将提供我的配置示例。
log4j2.yml
...
Appenders:
Console:
name: Console_Appender
target: SYSTEM_OUT
PatternLayout:
pattern: "[%-5level] %d{dd-MM-yyyy HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
File:
name: File_Appender
fileName: ${log-path}/fileLog.log
PatternLayout:
pattern: "[%-5level] %d{dd-MM-yyyy HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
...
我想要 fileLog${javaVariable}.log 其中 javaVariable 是动态的。 这可能吗?
谢谢你:)
编辑:要清楚 我需要如果我用@Around注释拦截的方法被user0调用,我必须在“user0.log”中写入(单个)日志; if 由 user1 -> "user1.log" 调用。 我可以随时创建用户,所以我需要一个动态文件名。
【问题讨论】:
-
我认为如果您更具体地了解“动态”可能会有所帮助。您的意思是“确定为要运行的应用程序的参数”或“在运行时在代码中设置”......
-
@g00se Dynamic = 在运行时在代码中设置
-
@LeiYang 我需要使用 yml :( 但是,我已经使用了 ${sys:logFile} 和 java System.setProperty("logFile", "theFileName") 但不起作用。你确定它适用于 yml 吗?
-
我认为 yaml 是一样的。 yaml 中的
${logFile}和java -DlogFile=xyz怎么样?