获取logback日志文件中的PID



在Spring-Boot之外使用logback时,如何将ProcessID放入日志文件名中?

RollingFileAppender中,我想定义:

<file>my-log-${PID}.log</file>

我如何得到${PID}集合,或者是否有标准的方法得到它?

  1. 学习如何从JVM内部获得自己的PID - Java程序如何获得自己的进程ID?
    ProcessHandle.current().pid()
    
  2. 创建一个自定义PropertyDefiner:
    package com.example;
    import ch.qos.logback.core.PropertyDefinerBase;
    class PidPropertyDefiner extends PropertyDefinerBase {
    public String getPropertyValue() {
    return Long.toString(ProcessHandle.current().pid());
    }
    }
    
  3. 使用该属性定义器将属性注入logback:
    <define name="SELF_PID" class="com.example.PidPropertyDefiner" />
    

…或者使用logback.groovy而不是logback.xml,在那里您可以直接访问JVM的每个位。

相关内容

最新更新