You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Volkan Yazici (Jira)" <ji...@apache.org> on 2022/02/01 12:34:00 UTC

[jira] [Commented] (LOG4J2-3366) Fix order of property sources

    [ https://issues.apache.org/jira/browse/LOG4J2-3366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17485220#comment-17485220 ] 

Volkan Yazici commented on LOG4J2-3366:
---------------------------------------

I agree that
 * current ordering is broken (granted it works as you described, didn't check)
 * Spring-like ordering (sys > env > component) is a better approach
 * source priority interpretation should be aligned

But before making a fool of myself, maybe there is something I might be missing in the big picture that others can highlight. Especially [~ralphgoers] has wild plans regarding the interaction between plugins and component properties.

> Fix order of property sources
> -----------------------------
>
>                 Key: LOG4J2-3366
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3366
>             Project: Log4j 2
>          Issue Type: Improvement
>    Affects Versions: 2.10.0
>            Reporter: Piotr P. Karwasz
>            Priority: Minor
>
> The current order of system property sources (cf. [documentation|https://logging.apache.org/log4j/2.x/manual/configuration.html#SystemProperties]) is rather unnatural, because:
>  # It gives a higher priority to environment variables than Java system properties. Java system properties apply to a single JVM, whereas environment variables might be shared between processes.
>  # It mixes up property sources accessible to system administrators and those accessible only to programmers (`log4j2.component.properties`).
> IMHO Log4j should prioritize the sources accessible to system administrators over `log4j2.component.properties`, hence allowing them to easily override the defaults established by developers. It should also prioritize Java system properties over environment variables. This is what, e.g. [Spring Boot does|https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config]. I propose the following order:
>  # System properties,
>  # Environment variables,
>  # `log4j2.component.properties` as failover.
> While technically this would be a breaking change, the official property source order never worked and bug LOG4J2-3193 was filed only recently. This proves that almost no one configures the same property in more than one source.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)