[
https://issues.apache.org/jira/browse/LOG4J2-2704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17934362#comment-17934362
]
Marcono1234 commented on LOG4J2-2704:
-------------------------------------
This has been fixed in the latest Log4j versions:
- see https://github.com/apache/logging-log4j2/issues/1484 and linked commits
which changed it to {{System.err}}
- subsequent commits which eventually changed it to {{StatusLogger}}
But as mentioned in LOG4J2-3593 and other issues about this warning message,
this warning actually indicates a misconfiguration (most likely shaded JAR
without {{Multi-Release: true}}), and can break location lookup, not only
affect performance.
> StackLocator should not print to stdout
> ---------------------------------------
>
> Key: LOG4J2-2704
> URL: https://issues.apache.org/jira/browse/LOG4J2-2704
> Project: Log4j 2
> Issue Type: Bug
> Affects Versions: 2.12.1
> Reporter: Marcel Hellkamp
> Priority: Major
>
> The static initialization of {{org.apache.logging.log4j.util.StackLocator}}
> currently prints warnings directly to {{System.out}} if some functionality is
> missing from the JRE (e.g. {{"WARNING: sun.reflect.Reflection.getCallerClass
> is not supported. This will impact performance."}}). This breaks console
> applications that output actual data to stdout, cannot be disabled and
> ignores the current logger configuration.
> Please remove this (non-critical) warning, let it honor the actual logger
> configuration, or at least allow users to disable this warning with a system
> property switch.
> In general, static initialization of a class should NEVER have side-effects
> like these. A library should NEVER print to stdout, if not explicitly told to
> do so. I really have no idea how someone could have thought this is a good
> idea.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)