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