[英]log4j2-Cofiguration : Replace system variable value in log4j2 configuration file
我正在使用外部 log4j 配置文件並使用帶有系統變量的文件附加程序來獲取日志文件名。 下面是我的文件追加器配置
<File name="File" fileName="${sys:LOG_BASE_DIR}/${sys:TalendJob.log}-${date:yyyyMMddHHmmss}.log">
<PatternLayout pattern="%d [%t] %-5p %c -$${ctx:InterfaceName:-}- %replace{%msg}{"Password" :\s+(\S+)}{Password : *****}%n" />
</File>
${sys:TalendJob.log} 為我提供后綴為“.log”的值(例如 job1.log),我想替換 .log 但不確定如何實現它。 所以目前我的日志文件正在生成,如 job1.log-20220315030201.log 我想要 job1-20220315030201.log
${sys:TalendJob.log} 這個值不在我的控制之下。我的意思是它是由我無法更改的其他一些進程設置的。
那么我如何將 replace.log 替換為 '' 即為空
通過更改 Talend studio 設置,我設法對文件名進行了一些控制。
從項目設置 go 到 Build > Shell 設置 > Bat(假設您使用的是 Windows),並在 java 命令之后添加:
-DjobName=${talend.job.name}
這將在生成的 bat 文件中創建一個系統屬性,名稱為 jobName 並將作業名稱作為值。
現在您可以更改 log4j2 配置以使用 jobName 而不是 TalendJob.log:
<File name="File" fileName="${sys:LOG_BASE_DIR}/${sys:jobName}-${date:yyyyMMddHHmmss}.log">
<PatternLayout pattern="%d [%t] %-5p %c -$${ctx:InterfaceName:-}- %replace{%msg}{"Password" :\s+(\S+)}{Password : *****}%n" />
</File>
這僅在您獨立運行作業時有效(通過運行.bat)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.