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

Daniel Norberg commented on LOG4J2-978:
---------------------------------------

No, we have hundreds of applications, the source code of which lives in 
hundreds of git repositories, developed/deployed/operated by hundreds of 
application engineers. The machines we have are in the thousands. Deploying 
files onto them is not really a big problem for us per se, although migrating 
from our current logging configuration setup to deploying application specific 
logging configuration files to all hosts is a non-insignificant task.

Not saying that either programmatic configuration or configuration files are 
generally better. It all boils down to specific use cases and circumstances. 
Please bear with me.

To provide some more context; We give our application engineers ownership over 
a lot of the stack. In the context of logging, the infrastructure/operations 
team ownership essentially ends at the syslog daemons running on all hosts. The 
logging stack above that, i.e. whatever needs to happen for applications to 
send logs to syslog, is owned by the application engineers. We provide 
libraries and frameworks that the application engineers can use to make their 
life easier wrt logging and other aspects of their applications. As such, we 
have a bit of a bazaar model. We have no team that would go through all our 
applications and swap out e.g. logback for log4j2 and make sure that the 
correct log files are in place. We do have engineers (e.g. me) that can make 
changes to the shared libraries and frameworks, that the application engineers 
can then upgrade to bring in good stuff like log4j2 instead of logback. My 
motivation for e.g. migrating from logback to log4j2 is that I see that log4j2 
has the potential to be more robust and performant, lessening the amount of 
support I need to provide to application engineers using my libraries.

In our case, a migration path from logback to log4j2 that involves our 
application engineers learning a new logging configuration file format and 
adding configuration files to their applications is unlikely to happen. If the 
migration path can simply be pulling in a newer version of our frameworks, then 
the migration will happen, potentially without the application engineer even 
noticing. Many of our application engineers are today likely blissfully unaware 
that they are currently using logback.

To get back to the topic of configuration files vs programmatic configuration, 
I believe there are valid use cases for robust programmatic configuration 
facilities alongside the use of configuration files. However, if I could get 
away with simply e.g. bundling a few log4j2 configuration files in my library 
instead of doing programmatic configuration, that would be good enough for me. 
I'll look into if that's feasible.

Thanks for your help, and keep up the good log4j2 work!

> log4j2 2.2 made breaking changes to public classes
> --------------------------------------------------
>
>                 Key: LOG4J2-978
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-978
>             Project: Log4j 2
>          Issue Type: Bug
>    Affects Versions: 2.2
>            Reporter: Daniel Norberg
>
> The log4j2 2.2 release contained breaking changes to public classes, breaking 
> direct uses and extenders of log4j2 interfaces.
> E.g. 
> https://github.com/apache/logging-log4j2/commit/3cdbbeddf19137d20fa6527d6620e88afcecb7f9
> Here is an example of the impact of this breaking change: 
> https://github.com/spotify/logging-java/commit/3d2ca1c31a8ca3eabe1db378e2df48e0757e80e7
> Does log4j2 aim to follow semantic versioning? I am currently looking into 
> the feasibility of taking log4j2 into use instead of logback, but this will 
> not be possible if log4j2 will be having further breaking changes in minor 
> releases.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to