Search code examples
javalogginglog4j

Log4j doesn't display process PID


I just installed and configured log4j.

It works, but doesn't show process PID, instead prints ${sys:PID} instead of, for example, 12941.

My log4j-config:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT" follow="true">
            <PatternLayout
                    disableAnsi="false"
                    pattern="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} %highlight{${LOG_LEVEL_PATTERN:-%5p}}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, TRACE=blue} %style{${sys:PID}}{magenta} --- [%15.15t] %style{%-40.40C{1.}}{cyan} : %m%n%ex"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="all">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

And console output: Console

So, how can I fix this?


Solution

  • I replaced sys:PID with %pid and it started working. I took that from this github issue: