Re: [VOTE] Release Apache Log4j 3.0.0-alpha1-rc2
+1 Tested src zip file, ASC and SHA512 OK. Builds OK with 'mvn clean verify' I did not do any integration testing with my apps as it is a pain to use something that is not in MC yet so that my CI/CD can more easily pick it up in branch builds. I'm happy to see real bits go out though! :-) - TODO not a blocker: Remove SHA256 files from dist.a.o, SHA512 is enough. - TODO not a blocker: Use the enforcer plugin to make it obvious we require Java 11 or above. Using: Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c) Maven home: /usr/local/Cellar/maven/3.9.2/libexec Java version: 11.0.19, vendor: Homebrew, runtime: /usr/local/Cellar/openjdk@11/11.0.19/libexec/openjdk.jdk/Contents/Home Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "13.4", arch: "x86_64", family: "mac" Darwin 22.5.0 Darwin Kernel Version 22.5.0: Mon Apr 24 20:51:50 PDT 2023; root:xnu-8796.121.2~5/RELEASE_X86_64 x86_64 Gary On Sat, Jun 17, 2023 at 11:17 PM Ralph Goers wrote: > > This is a vote to release Log4j 3.0.0-alpha, the first release the Log4j 3.x > series. > > Please download, test, and cast your votes on the log4j developers list. > [] +1, release the artifacts > [] -1, don't release because... > > The vote will remain open for 72 hours. All votes are welcome and we > encourage everyone to test the release, but only Logging PMC votes are > “officially” counted. As always, at least 3 +1 votes and more positive than > negative votes are required. > > Changes in this version include: > > Added > • Allow plugins to be created through more flexible dependency injection > patterns. (for LOG4J2-1188 by Matt Sicker) > • Allow to force LOG4J2 to use TCCL only. (for LOG4J2-2171 by > rmannibucau, Ralph Goers) > • Allow web lookup to access more information. (for LOG4J2-2523 by Romain > Manni-Bucau, Ralph Goers) > • Allow web lookup of session attributes. (for LOG4J2-2688 by Ralph > Goers, Romain Manni-Bucau) > • Add support for injecting plugin configuration via builder methods. > (for LOG4J2-2700 by Matt Sicker) > • Add scopes API for customizing plugin instance lifecycle. (for > LOG4J2-2852 by Matt Sicker) > • Add qualifier annotations for distinguishing instances of the same > type. (for LOG4J2-2853 by Matt Sicker) > • Create standardized dependency injection API. This is supported in > several plugin categories and other configurable instances previously defined > via system properties. (for LOG4J2-2854 by Matt Sicker) > • Add conditional annotations to support more declarative binding factory > bundle classes. (for LOG4J2-3300 by Matt Sicker) > • Add built-in JSON configuration parser for a useful structured > configuration file format which only requires the java.base module. (for > LOG4J2-3415 by Matt Sicker) > • Add @Ordered annotation to support plugin ordering when two or more > plugins within the same category have the same case-insensitive name. (for > LOG4J2-857 by Matt Sicker) > > Changed > • Simplify Maven site phase and align it with the one in 2.x branch. (for > 1220 by Volkan Yazıcı) > • Update build to use Java 11 bytecode. (for 480 by Ralph Goers) > • Convert documentation into AsciiDoc format. (for LOG4J2-1802 by Matt > Sicker) > • Rename package core.util.datetime to core.time.internal.format to > clarify these classes are to be considered private. (for LOG4J2-2224 by Remko > Popma) > • Move time-related classes from core.util to core.time. Classes > considered private moved to core.time.internal. (for LOG4J2-2225 by Remko > Popma) > • Split off Kafka support into a new module log4j-kafka. (for LOG4J2-2227 > by Gary Gregory) > • Split off ZeroMq/JeroMq support into a new module log4j-jeromq. (for > LOG4J2-2228 by Gary Gregory) > • Split off SMTP support into a new module log4j-smtp. (for LOG4J2-2230 > by Gary Gregory) > • Split off CSV layout into a new module log4j-csv. (for LOG4J2-2231 by > Gary Gregory) > • Split off JMS support into a new module log4j-jms. (for LOG4J2-2232 by > Gary Gregory) > • Split off JDBC support into a new module log4j-jdbc. (for LOG4J2-2233 > by Gary Gregory) > • Split off Jackson-based layouts into their own modules: > log4j-layout-jackson-json, log4j-layout-jackson-xml and > log4j-layout-jackson-yaml. (for LOG4J2-2237 by Gary Gregory) > • Update builder methods from the "with" prefix to the "set" prefix. (for > LOG4J2-2492 by Gary Gregory) > • Remove deprecated code. (for LOG4J2-2493 by Gary Gregory) > • Fix typo in method MergeStrategy.mergeConfigurations. (for LOG4J2-2617 > by Matt Sicker) > • Separate plugin support to its own module. Plugin annotation processor > will now generate a Java source file compatible with java.util.ServiceLoader > instead of a binary file. (for LOG4J2-2621 by Ralph Goers) > • Rename PluginVisitor and related classes to > ConfigurationInjectionBuilder. (for LOG4J2-2683
Re: Optional dependencies in `log4j-core` 3.x
The JSON configuration can use the built-in JSON parser via the “Jason” version of the JSON configuration classes. I already added that a while ago. The Jackson ones can be moved to their own module. As for async logging, if it’s possible to break it into its own module, that’d be great, particularly to avoid having to set a system property to enable it. — Matt Sicker > On Jun 19, 2023, at 13:24, Piotr P. Karwasz wrote: > > Hi all, > > While the list of optional dependencies in `log4j-core` version 3.x is > much shorter than the one in the 2.x series, we could probably still > improve it a bit: > > * we could remove `jansi`. Since Windows 10 the terminal supports > standard ANSI escapes[1]. On the other hand we broke JANSI support 3 > years ago by upgrading from JANSI 1.x to 2.x[2]: the new version does > not have the `org.fusesource.jansi.WindowsAnsiOutputStream` class we > rely upon, > * we should consider removing the Jackson dependency: >1. it is only required by the YAML configuration format, that we > could move to a new module, >2. the JSON configuration format should probably use the JSON > parser embedded into `log4j-api`. > * maybe we could add some POM-only artifacts like > `log4j-core-starter-async` that would depend on `log4j-core` and the > recommended version of `disruptor`. The problem I find with optional > dependencies is that consumers need to hardcode the version of the > dependency in their POM and need to remember to upgrade it when they > upgrade `log4j-core`. If we introduce "starters" for each optional > dependency (LMAX disruptor, Conversant disruptor and JCTools), users > can rely on our choice of the version. > > Piotr > > [1] https://stackoverflow.com/q/16755142/11748454 > [2] > https://github.com/apache/logging-log4j2/commit/9fabec5277f06f59ceaeff20da055ab7bf1952c4
Apache Log4cxx 1.1.0
Hi I downloaded the Apache Log4cxx 1.1.0 and tried to compile using the instructions of cmake/make file for 32 bit build. I get the following error: Call of overloaded 'AppenderSkeleton(std::unique_ptr) is ambiguous And than candidate listed are appenderskeleton.h line 44 and line 64. I searched the google and your website .. no one has mentioned this error. Please advise, Is there some flag that I am suppose to set or use. I used -m32 cmake/gcc flag for 32 bit compilation on linux redhat rhel-9.0 Thanks Asif ghori
Re: Apache Log4cxx 1.1.0
Do we even still support 32-bit builds? Gary On Tue, Jun 20, 2023, 17:09 Ghori, Asif [US] (AS) wrote: > Hi > > I downloaded the Apache Log4cxx 1.1.0 and tried to compile using the > instructions of cmake/make file for 32 bit build. > I get the following error: > > Call of overloaded > 'AppenderSkeleton(std::unique_ptr std::default_delete) is ambiguous > > > And than candidate listed are appenderskeleton.h line 44 and line 64. > > I searched the google and your website .. no one has mentioned this error. > > Please advise, Is there some flag that I am suppose to set or use. I used > -m32 cmake/gcc flag for 32 bit compilation on linux redhat rhel-9.0 > > Thanks > Asif ghori >
Re: Apache Log4cxx 1.1.0
Yes, 32-bit builds should be OK. The code at line 64 should be AppenderSkeleton(const LayoutPtr& layout); The code at line 44 should be: AppenderSkeleton(LOG4CXX_PRIVATE_PTR(AppenderSkeletonPrivate) priv); Asif, is your AppenderSkeleton.h different? On Wed, Jun 21, 2023 at 7:25 AM Gary Gregory wrote: > Do we even still support 32-bit builds? > > Gary > > On Tue, Jun 20, 2023, 17:09 Ghori, Asif [US] (AS) > wrote: > > > Hi > > > > I downloaded the Apache Log4cxx 1.1.0 and tried to compile using the > > instructions of cmake/make file for 32 bit build. > > I get the following error: > > > > Call of overloaded > > > 'AppenderSkeleton(std::unique_ptr > std::default_delete) is ambiguous > > > > > > And than candidate listed are appenderskeleton.h line 44 and line 64. > > > > I searched the google and your website .. no one has mentioned this > error. > > > > Please advise, Is there some flag that I am suppose to set or use. I used > > -m32 cmake/gcc flag for 32 bit compilation on linux redhat rhel-9.0 > > > > Thanks > > Asif ghori > > >
MongoDB 3 appender
Hi all, According to MongoDB's lifecycle page: https://www.mongodb.com/support-policy/lifecycles MongoDB 3.x reached end-of-life in 2021. Should we drop the `log4j-mongodb3` module in Log4j 3.x? Piotr PS: We forgot to drop `log4j-liquibase` in the `main` branch. I'll do it shortly.
Re: [VOTE] Release Apache Log4j 3.0.0-alpha1-rc2
My +1 Ralph > On Jun 20, 2023, at 4:41 AM, Gary Gregory wrote: > > +1 > > Tested src zip file, ASC and SHA512 OK. > Builds OK with 'mvn clean verify' > > I did not do any integration testing with my apps as it is a pain to > use something that is not in MC yet so that my CI/CD can more easily > pick it up in branch builds. I'm happy to see real bits go out though! > :-) > > - TODO not a blocker: Remove SHA256 files from dist.a.o, SHA512 is enough. > - TODO not a blocker: Use the enforcer plugin to make it obvious we > require Java 11 or above. > > Using: > > Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c) > Maven home: /usr/local/Cellar/maven/3.9.2/libexec > Java version: 11.0.19, vendor: Homebrew, runtime: > /usr/local/Cellar/openjdk@11/11.0.19/libexec/openjdk.jdk/Contents/Home > Default locale: en_US, platform encoding: UTF-8 > OS name: "mac os x", version: "13.4", arch: "x86_64", family: "mac" > Darwin 22.5.0 Darwin Kernel Version 22.5.0: Mon Apr 24 20:51:50 > PDT 2023; root:xnu-8796.121.2~5/RELEASE_X86_64 x86_64 > > Gary > > On Sat, Jun 17, 2023 at 11:17 PM Ralph Goers > wrote: >> >> This is a vote to release Log4j 3.0.0-alpha, the first release the Log4j 3.x >> series. >> >> Please download, test, and cast your votes on the log4j developers list. >> [] +1, release the artifacts >> [] -1, don't release because... >> >> The vote will remain open for 72 hours. All votes are welcome and we >> encourage everyone to test the release, but only Logging PMC votes are >> “officially” counted. As always, at least 3 +1 votes and more positive than >> negative votes are required. >> >> Changes in this version include: >> >> Added >>• Allow plugins to be created through more flexible dependency injection >> patterns. (for LOG4J2-1188 by Matt Sicker) >>• Allow to force LOG4J2 to use TCCL only. (for LOG4J2-2171 by >> rmannibucau, Ralph Goers) >>• Allow web lookup to access more information. (for LOG4J2-2523 by Romain >> Manni-Bucau, Ralph Goers) >>• Allow web lookup of session attributes. (for LOG4J2-2688 by Ralph >> Goers, Romain Manni-Bucau) >>• Add support for injecting plugin configuration via builder methods. >> (for LOG4J2-2700 by Matt Sicker) >>• Add scopes API for customizing plugin instance lifecycle. (for >> LOG4J2-2852 by Matt Sicker) >>• Add qualifier annotations for distinguishing instances of the same >> type. (for LOG4J2-2853 by Matt Sicker) >>• Create standardized dependency injection API. This is supported in >> several plugin categories and other configurable instances previously >> defined via system properties. (for LOG4J2-2854 by Matt Sicker) >>• Add conditional annotations to support more declarative binding factory >> bundle classes. (for LOG4J2-3300 by Matt Sicker) >>• Add built-in JSON configuration parser for a useful structured >> configuration file format which only requires the java.base module. (for >> LOG4J2-3415 by Matt Sicker) >>• Add @Ordered annotation to support plugin ordering when two or more >> plugins within the same category have the same case-insensitive name. (for >> LOG4J2-857 by Matt Sicker) >> >> Changed >>• Simplify Maven site phase and align it with the one in 2.x branch. (for >> 1220 by Volkan Yazıcı) >>• Update build to use Java 11 bytecode. (for 480 by Ralph Goers) >>• Convert documentation into AsciiDoc format. (for LOG4J2-1802 by Matt >> Sicker) >>• Rename package core.util.datetime to core.time.internal.format to >> clarify these classes are to be considered private. (for LOG4J2-2224 by >> Remko Popma) >>• Move time-related classes from core.util to core.time. Classes >> considered private moved to core.time.internal. (for LOG4J2-2225 by Remko >> Popma) >>• Split off Kafka support into a new module log4j-kafka. (for LOG4J2-2227 >> by Gary Gregory) >>• Split off ZeroMq/JeroMq support into a new module log4j-jeromq. (for >> LOG4J2-2228 by Gary Gregory) >>• Split off SMTP support into a new module log4j-smtp. (for LOG4J2-2230 >> by Gary Gregory) >>• Split off CSV layout into a new module log4j-csv. (for LOG4J2-2231 by >> Gary Gregory) >>• Split off JMS support into a new module log4j-jms. (for LOG4J2-2232 by >> Gary Gregory) >>• Split off JDBC support into a new module log4j-jdbc. (for LOG4J2-2233 >> by Gary Gregory) >>• Split off Jackson-based layouts into their own modules: >> log4j-layout-jackson-json, log4j-layout-jackson-xml and >> log4j-layout-jackson-yaml. (for LOG4J2-2237 by Gary Gregory) >>• Update builder methods from the "with" prefix to the "set" prefix. (for >> LOG4J2-2492 by Gary Gregory) >>• Remove deprecated code. (for LOG4J2-2493 by Gary Gregory) >>• Fix typo in method MergeStrategy.mergeConfigurations. (for LOG4J2-2617 >> by Matt Sicker) >>• Separate plugin support to its own module. Plugin annotation processor >> will now generate a Java source file compatible with java.
[RESULT][VOTE] Release Apache Log4j 3.0.0-alpha1-rc2
This vote has passed with 3 +1 votes from Piotr Karwasz, Gary Gregory, and Ralph Goers. I will continue with the release process. Ralph