Home > other >  Get PID in logback log file
Get PID in logback log file

Time:05-05

When using logback outside of Spring-Boot, how can I get the ProcessID into the log file name?

In the RollingFileAppender I'd like to define:

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

How can I get the ${PID} set or is there a standard way of obtaining this?

CodePudding user response:

  1. Learn how to get the own PID from inside the JVM - How can a Java program get its own process ID?
    ProcessHandle.current().pid()
    
  2. Create a custom PropertyDefiner:
    package com.example;
    import ch.qos.logback.core.PropertyDefinerBase;
    
    class PidPropertyDefiner extends PropertyDefinerBase {
      public String getPropertyValue() {
        return Long.toString(ProcessHandle.current().pid());
      }
    }
    
  3. Use that property definer to inject a property into the logback:
     <define name="SELF_PID"  />
    

... or use the logback.groovy instead of logback.xml, there you can just access every bit of JVM directly.

  • Related