After log4shell last year, I no longer have any patience for third
party logging libraries, full stop.

IMO logging should be done through java.util.logging, nothing else.
This is fully functional since Java 1.4 twenty years ago. Log4j,
slf4j, plexus-logging, etc. are all efforts to solve a problem we
don't have any more. They are not needed and they introduce dependency
problems and security issues.

For one example, Google has used java.util.logging exclusively in all
its internal Java code since at least 2008 and never needed anything
more. This is a matter of policy inside Google, and as a result of
this log4shell was close to a non-event for one of the largest Java
shops on the planet. It wasn't a complete non-event only because of
third party libraries that depended on log4j and open source projects
that weren't quite as strict about following Google rules.

To the extent Maven and its plugins are currently dependent on SLF4J
and others, this should be fixed. We should not continue down this
path in any new or updated code. To be clear:

1. I am willing to do some of the work of ripping out old logging
calls and replacing them with j.u.l.

2. It is OK to have mixed logging during a transition period.

3. It is OK if some log messages are lost or appear when they're not
expected during a transition period. Logging is never critical
functionality.

What I am not willing to accept are dependency management problems and
major security holes like log4shell due to optional, convenience
functionality.

On Fri, Nov 4, 2022 at 10:57 AM Slawomir Jaranowski
<s.jaranow...@gmail.com> wrote:
>
> Hi,
>
> I want to start ( again :-) ) a discussion about logging in Maven plugins.
>
> First I agree that plugin developers should use logging methods provided by
> Plugin api.
>
> But we can not expect plugin developers to write everything from scratch.
> In many cases they may want to use an external library to do tasks needed
> by the plugin.
>
> We don't have any control over what logging framework is used in the
> external library used by plugin developers.
>
> We also maintain some libraries which can be used by plugin and also as
> standalone in another project.
> In such a case the question is - what logging we should use [1]?
>
> Last time I did a test, I use Java util logging from JDK in the Maven
> plugin.
> I see that Java util logging use default configuration, eg. we will have
> two lines for one log event.
> Even more options -q and -X have no effect for such a logger.
>
> One of the solution for such problem is using "Bridging" methods supported
> by slf4j [2]
> Probably all of existing and future logging frameworks can not be covered -
> but most of common using will be.
>
> I hope that, even if we will want to change the logging framework used
> internally in Maven, we can also use the same method.
>
> [1] https://github.com/apache/maven-dependency-analyzer/pull/71
> [2] https://www.slf4j.org/legacy.html
>
>
> --
> Sławomir Jaranowski



-- 
Elliotte Rusty Harold
elh...@ibiblio.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to