在Spring-Boot之外使用logback时,如何将ProcessID放入日志文件名中?
在RollingFileAppender
中,我想定义:
<file>my-log-${PID}.log</file>
我如何得到${PID}
集合,或者是否有标准的方法得到它?
- 学习如何从JVM内部获得自己的PID - Java程序如何获得自己的进程ID?
ProcessHandle.current().pid()
创建一个自定义PropertyDefiner: - 使用该属性定义器将属性注入logback:
<define name="SELF_PID" class="com.example.PidPropertyDefiner" />
package com.example;
import ch.qos.logback.core.PropertyDefinerBase;
class PidPropertyDefiner extends PropertyDefinerBase {
public String getPropertyValue() {
return Long.toString(ProcessHandle.current().pid());
}
}
…或者使用logback.groovy
而不是logback.xml
,在那里您可以直接访问JVM的每个位。