Hi folks,

Happy New Year!

Logback patch is now ready for review:
https://github.com/apache/zookeeper/pull/1793

Thanks,
Andor



> On 2021. Dec 21., at 20:44, Brent <brentwritesc...@gmail.com> wrote:
> 
> Thank you for the details Andor.  It sounds like you have a good plan in
> place for doing the migration.
> 
> I had some open work against ZooInspector that I wanted to do, so it sounds
> like I'd be best focusing my efforts there and leaving this to you.
> 
> Thanks for your time and help!
> 
> ~Brent
> 
> On Tue, Dec 21, 2021 at 3:27 AM Enrico Olivelli <eolive...@gmail.com> wrote:
> 
>> Andor,
>> 
>> Il giorno mar 21 dic 2021 alle ore 12:25 Andor Molnar <an...@apache.org>
>> ha
>> scritto:
>> 
>>> Thanks for the feedback Brent.
>>> 
>>> I currently work on the logback patch and identified the following steps
>>> for migration:
>>> - Replace log4j references with logback counterparts in pom.xml,
>>> - Refactor unit tests which depend on log4j: they create a custom
>>> ByteArrayOutputStream for capturing log messages. I need to dig into
>>> logback implementation for this, but not the end of the world.
>>> - Convert log4j.properties files to logback.xml. The online translator (
>>> https://logback.qos.ch/translator/) is handy, but not perfect, so this
>>> step also needs some manual work.
>>> 
>>> I’ll probably skip the migration of zookeeper-contrib projects to save
>>> some time. If the community accepts the change, I’ll create further
>> patches
>>> to polish off everything.
>>> 
>>> Notice that there’s literally no code change is needed in ZK main
>> codebase
>>> which I think is awesome. The bottleneck is the holiday season for me.
>>> 
>> 
>> Thanks for the update
>> 
>> My experience in "embedding" ZK jars in other products  is the same, we are
>> using slf4j, so we can switch provider very easily
>> 
>> looking forward for the patch
>> 
>> Enrico
>> 
>> 
>>> 
>>> Can’t say for log4j2, I don’t have experience with that. ZK community was
>>> always reluctant to take that step, perhaps for a reason.
>>> 
>>> Andor
>>> 
>>> 
>>> 
>>> 
>>>> On 2021. Dec 20., at 18:02, Brent <brentwritesc...@gmail.com> wrote:
>>>> 
>>>> In case it helps, I did a quick run over the weekend of all the places
>> I
>>>> see "Log4j" mentioned in code and documentation.  This is a naive
>> search
>>> so
>>>> not all of these references are necessarily of equal impact, but I
>>> thought
>>>> it might give some context to the scope of the change.  It also seems
>>> like
>>>> maybe some pieces of the project could be migrated independently of
>>> others
>>>> rather than a "big bang" change to everything.
>>>> 
>>>> ~Brent
>>>> 
>>>> zookeeper/bin/zkCleanup.sh
>>>> zookeeper/bin/zkCli.cmd
>>>> zookeeper/bin/zkCli.sh
>>>> zookeeper/bin/zkEnv.cmd
>>>> zookeeper/bin/zkEnv.sh
>>>> zookeeper/bin/zkServer.cmd
>>>> zookeeper/bin/zkServer.sh
>>>> 
>>>> zookeeper/conf/log4j.properties
>>>> 
>>>> zookeeper/zookeeper-contrib/zookeeper-contrib-fatjar/pom.xml
>>>> 
>>>> zookeeper/zookeeper-contrib/zookeeper-contrib-loggraph/pom.xml
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-loggraph/src/main/java/org/apache/zookeeper/graph/JsonGenerator.java
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-loggraph/src/main/java/org/apache/zookeeper/graph/Log4JEntry.java
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-loggraph/src/main/java/org/apache/zookeeper/graph/LogEntry.java
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-loggraph/src/main/java/org/apache/zookeeper/graph/Log4JSource.java
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-loggraph/src/main/java/org/apache/zookeeper/graph/MergedLogSource.java
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/loggraph-dev.sh
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/log4j.properties
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-loggraph/src/test/java/org/apache/zookeeper/graph/servlets/ThroughputTest.java
>>>> 
>>>> zookeeper/zookeeper-contrib/zookeeper-contrib-rest/build.xml
>>>> zookeeper/zookeeper-contrib/zookeeper-contrib-rest/ivy.xml
>>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-rest/conf/log4j.properties
>>>> zookeeper/zookeeper-contrib/zookeeper-contrib-rest/pom.xml
>>>> 
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-zkfuse/src/log4cxx.properties
>>>> 
>>>> zookeeper/zookeeper-contrib/zookeeper-contrib-zooinspector/build.xml
>>>> zookeeper/zookeeper-contrib/zookeeper-contrib-zooinspector/ivy.xml
>>>> 
>>> 
>> zookeeper/zookeeper-contrib/zookeeper-contrib-zooinspector/src/main/resources/log4j.properties
>>>> zookeeper/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml
>>>> zookeeper/zookeeper-contrib/zookeeper-contrib-zooinspector/TODO
>>>> 
>>>> zookeeper/zookeeper-docs/src/main/resources/markdown/releasenotes.md
>>>> zookeeper/zookeeper-docs/src/main/resources/markdown/zookeeperAdmin.md
>>>> 
>>> 
>> zookeeper/zookeeper-docs/src/main/resources/markdown/zookeeperAuditLogs.md
>>>> 
>>> 
>> zookeeper/zookeeper-docs/src/main/resources/markdown/zookeeperInternals.md
>>>> zookeeper/zookeeper-docs/src/main/resources/markdown/zookeeperJMX.md
>>>> 
>> zookeeper/zookeeper-docs/src/main/resources/markdown/zookeeperStarted.md
>>>> zookeeper/zookeeper-docs/src/main/resources/markdown/zookeeperTools.md
>>>> 
>>>> 
>>> 
>> zookeeper/zookeeper-metrics-providers/zookeeper-prometheus-metrics/src/test/resources/log4j.properties
>>>> 
>>>> zookeeper/zookeeper-server/pom.xml
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/audit/Log4jAuditLogger.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/audit/ZKAuditProvider.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/jmx/ManagedUtil.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeerMain.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperServerMain.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooTrace.java
>>>> zookeeper/zookeeper-server/src/main/resources/NOTICE.txt
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/test/java/org/apache/zookeeper/audit/Log4jAuditLoggerTest.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/test/java/org/apache/zookeeper/audit/StandaloneServerAuditTest.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerMainMultiAddressTest.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReadOnlyModeTest.java
>>>> 
>>> 
>> zookeeper/zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigExceptionTest.java
>>>> zookeeper/zookeeper-server/src/test/resources/log4j.properties
>>>> 
>>>> zookeeper/zookeeper-recipes/zookeeper-recipes-election/build.xml
>>>> 
>>>> zookeeper/zookeeper-recipes/zookeeper-recipes-lock/build.xml
>>>> 
>>>> zookeeper/zookeeper-recipes/zookeeper-recipes-queue/build.xml
>>>> 
>>>> zookeeper/owaspSuppressions.xml
>>>> zookeeper/pom.xml
>>>> 
>>>> On Sat, Dec 18, 2021 at 9:33 PM Brent <brentwritesc...@gmail.com>
>> wrote:
>>>> 
>>>>> Apologies if this is repeated information (I sent some of this to the
>>> user@
>>>>> mailing list).
>>>>> 
>>>>> I understand the arguments for/against Log4j 1.x and won't repeat them
>>> all
>>>>> here.  It seems like there's still some debate between Log4j2 vs.
>>> Logback
>>>>> too.  Does anyone have a feel for how much effort either of these
>>>>> conversions/upgrades/patches would be (hours? days? weeks?)?  Would
>> you
>>> all
>>>>> be open to some pull requests to help move the conversation forward?
>>>>> 
>>>>> I'm asking because I know some more cautious organizations are
>> currently
>>>>> taking action to attempt to mitigate existing ZK installations on
>> their
>>> own
>>>>> (opinions on 1.x aside, it's happening).  Some of those organizations
>>> are
>>>>> also on much older versions of ZK too so there's also the question of
>>> which
>>>>> versions are worth updating in addition to 3.8 (3.4? 3.5? 3.6? 3.7?).
>>>>> 
>>>>> I know everyone is pressed for time and I'm looking for ways to help.
>>> I'd
>>>>> be happy to try to pitch in if it would be useful at all.  I just want
>>> to
>>>>> make sure I'd be focusing my effort in the right direction.
>>>>> 
>>>>> Regardless, thanks for all the time & effort you all put in on the
>>>>> project, it's very much appreciated.
>>>>> 
>>>>> ~Brent
>>>>> 
>>>>> On Wed, Dec 15, 2021 at 1:50 PM Andor Molnar <an...@apache.org>
>> wrote:
>>>>> 
>>>>>> Gosh, we have a few unit tests with log4j specific code.
>>>>>> I need some free cycles to refactor them properly.
>>>>>> 
>>>>>> Andor
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On 2021. Dec 15., at 14:11, Andor Molnar <an...@apache.org> wrote:
>>>>>>> 
>>>>>>> Agreed. My choice is not based on the recent vulnerabilities. There
>>>>>>> probably more to come by the way, so this is not the best timing for
>>>>>>> log4j2.
>>>>>>> 
>>>>>>> Anyway, the main advantage I see for logback is that it's closer to
>>>>>>> log4j1, hence probably easier to migrate to.
>>>>>>> 
>>>>>>> ZooKeeper already uses SLF4j so, as you suggested, we should follow
>>> the
>>>>>>> facade / default logging backend approach. Though I believe logback
>> is
>>>>>>> better for the default. Sometimes less is more and in terms of
>>>>>>> vulnerabilities less code has less chance for bugs. If logback has
>> all
>>>>>>> the features which ZooKeeper needs, I think we should choose that.
>>>>>>> 
>>>>>>> Andor
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Wed, 2021-12-15 at 07:41 -0500, Christopher wrote:
>>>>>>>> I think it would be a mistake to use the recently reported
>>>>>>>> vulnerability as a basis for migrating to logback. Any dependency
>> can
>>>>>>>> have a vulnerability, and logback is not substantially different.
>> No
>>>>>>>> dependency is going to be guaranteed vulnerability-free. Switching
>> on
>>>>>>>> that basis is a wild goose chase. What is important is that people
>>>>>>>> respond to vulnerabilities by updating/patching in a timely manner.
>>>>>>>> 
>>>>>>>> Also, it is my understanding that log4j2 is the evolution of
>> logback
>>>>>>>> and slf4j, incorporating the original enhancements that logback had
>>>>>>>> made as a standard slf4j implementation and incorporating them back
>>>>>>>> into log4j code, as well as providing a lot of additional very
>> useful
>>>>>>>> features and a huge amount of configuration flexibility. Although
>>>>>>>> logback is probably still suitable, log4j2 seems to be much more
>>>>>>>> active, and where the mainline development for Java logging is
>>>>>>>> happening. Moving to logback from log4j2 seems like a step
>> backwards.
>>>>>>>> 
>>>>>>>> Most importantly, though, the actual runtime logging implementation
>>>>>>>> should be independent from ZooKeeper project development. This
>>>>>>>> project
>>>>>>>> should use slf4j as a logging facade exclusively, and users should
>> be
>>>>>>>> able to use whatever slf4j runtime implementation they want. If
>>>>>>>> ZooKeeper wants to choose a simple implementation, it shouldn't use
>>>>>>>> logback, but should use slf4j-simple instead. However, I think it
>>>>>>>> makes more sense to keep log4j2 at runtime for the slf4j
>>>>>>>> implementation. Users can still change it out for whatever they
>> want.
>>>>>>>> There's no need to take action to replace the runtime
>> implementation
>>>>>>>> for slf4j, because users can do that if they want... as long as the
>>>>>>>> project itself limits its logging to using the slf4j API.
>>>>>>>> 
>>>>>>>> On Wed, Dec 15, 2021 at 6:46 AM Andor Molnar <an...@apache.org>
>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> https://issues.apache.org/jira/browse/ZOOKEEPER-4427
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Wed, 2021-12-15 at 12:35 +0100, Andor Molnar wrote:
>>>>>>>>>> Sure. I'll take care of that, but first things first. Look what
>>>>>>>>>> I've
>>>>>>>>>> found when checking the history of the issue.
>>>>>>>>>> 
>>>>>>>>>> Thumbs-up from Ceki back from 2016:
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>> 
>>> 
>> https://issues.apache.org/jira/browse/ZOOKEEPER-2342?focusedCommentId=15207288&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-15207288
>>>>>>>>>> 
>>>>>>>>>> What else do we need? :)
>>>>>>>>>> 
>>>>>>>>>> Andor
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On Wed, 2021-12-15 at 12:07 +0100, Enrico Olivelli wrote:
>>>>>>>>>>> +1
>>>>>>>>>>> 
>>>>>>>>>>> Would you like to submit a PR ?
>>>>>>>>>>> Then we can release 3.8.0
>>>>>>>>>>> 
>>>>>>>>>>> Enrico
>>>>>>>>>>> 
>>>>>>>>>>> Il giorno mer 15 dic 2021 alle ore 12:04 Flavio Junqueira
>>>>>>>>>>> <f...@apache.org>
>>>>>>>>>>> ha scritto:
>>>>>>>>>>> 
>>>>>>>>>>>> We use logback in Pravega, it works fine for us. I'd be ok
>>>>>>>>>>>> with the
>>>>>>>>>>>> change.
>>>>>>>>>>>> 
>>>>>>>>>>>> -Flavio
>>>>>>>>>>>> 
>>>>>>>>>>>>> On 15 Dec 2021, at 12:02, Andor Molnar <an...@apache.org>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Hi ZK folks,
>>>>>>>>>>>>> 
>>>>>>>>>>>>> What do you think about migrating ZK to logback?
>>>>>>>>>>>>> The idea just crossed my mind due to the recent turbulence
>>>>>>>>>>>>> with
>>>>>>>>>>>>> log4j.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Checking some migrating guides, it doesn’t seem the end of
>>>>>>>>>>>>> the
>>>>>>>>>>>>> world.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Andor
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>> 
>>> 
>> 

Reply via email to