I don’t think we need to go 2.5 for a minor new feature. The feature is to allow a PatternSelector on the PatternLayout. I want to use a different pattern for events with the FLOW marker than for regular events.
Ralph > On Sep 22, 2015, at 9:46 PM, Gary Gregory <[email protected]> wrote: > > Cool, what's that? > > BTW, new feature <=> 2.5. > > Gary > > On Tue, Sep 22, 2015 at 9:39 PM, Ralph Goers <[email protected] > <mailto:[email protected]>> wrote: > I am going to want a 2.4.1 pretty quick anyway. I am adding a new feature > that I need for work. > > Ralph > >> On Sep 22, 2015, at 7:47 PM, Gary Gregory <[email protected] >> <mailto:[email protected]>> wrote: >> >> I am testing the RC within my current project. I plan on living with the RC >> for another dev/debug session or two. So far, no issues that warrant a >> re-spin. >> >> Gary >> >> On Tue, Sep 22, 2015 at 5:14 PM, Ralph Goers <[email protected] >> <mailto:[email protected]>> wrote: >> Then again, if you don’t vote +1 that could force another release. >> >> Ralph >> >>> On Sep 22, 2015, at 4:17 PM, Ralph Goers <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Not in my book. I suspect it could be worked around by including a more >>> modern version of Xerces. What I don’t get is that they must be using Java >>> 7. Seems strange to support that and not have XInclude support. >>> >>> Ralph >>> >>>> On Sep 22, 2015, at 3:33 PM, Gary Gregory <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> Is LOG4J2-1127 worth another RC? >>>> >>>> Gary >>>> >>>> On Mon, Sep 21, 2015 at 8:32 PM, Remko Popma <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> (Including PMC in recipients) >>>> >>>> >>>> +1 >>>> >>>> I see many issues with the site (details below), but AFAICS no >>>> showstoppers - unless we consider dependency-convergence mandatory? >>>> I also found a bug in CsvLogEventLayout: NanoTime will always be zero >>>> (need to set NanoClockFactory mode - details below). >>>> >>>> ---- >>>> (Notation: "-": current problematic text to be replaced, "+": replacement >>>> text) >>>> ---- >>>> >>>> changelog.html (outdated/wrong) >>>> -Configuration via property files is not supported. >>>> +Configuration via property files is supported from version 2.4, but is >>>> not compatible with Log4j 1.x. >>>> >>>> changes.xml (improvement) >>>> -LOG4J2-952: Add ConfigurationBuilder. >>>> +LOG4J2-952: Add ConfigurationBuilder for programmatic configuration. >>>> >>>> faq.html (outdated, duplicate) >>>> * Under "How do I configure log4j2 in code without a configuration file?" >>>> -You could use the static method #initialize(String contextName, >>>> ClassLoader loader, String configLocation) (see source code) in >>>> org.apache.logging.log4j.core.config.Configurator. (You can pass null for >>>> the class loader.) Be aware that this class is not part of the public API >>>> so your code may break with any minor release. >>>> +From 2.4, Log4j 2 provides an [API for programmatic >>>> configuration|manual/customconfig.html]. The new ConfigurationBuilder API >>>> allows you to create Configurations in code by constructing component >>>> _definitions_ without requiring you to know about the internals of actual >>>> configuration objects like Loggers and Appenders. >>>> >>>> * Merge these answers into a single Q&A entry: >>>> "How do I change a logger's level in code?" and >>>> "How do I set a logger's level programmatically?" >>>> >>>> * Version >>>> -the log4j-api-2.1 and the log4j-core-2.1 jar files >>>> +the log4j-api-2.4 and the log4j-core-2.4 jar files >>>> >>>> >>>> manual/appenders.html (site errors and ambiguities) >>>> * Kafka Appender is missing from the left nav-bar in Appenders >>>> >>>> -The KafkaAppender log events >>>> +The KafkaAppender logs events >>>> >>>> -lilter (Parameter Name) >>>> +filter >>>> >>>> -If you do not specify a layout, if not specified the formatted message as >>>> an UTF-8 encoded string will be sent to Kafka. >>>> +If you do not specify a layout, the formatted message will be sent to >>>> Kafka as an UTF-8 encoded string. >>>> >>>> -This appender requires Kafka client library >>>> +This appender requires Kafka client library. (add period at end) >>>> >>>> >>>> ZeroMQ appender: >>>> * Section title and left nav-bar title should be "JeroMQ". (and section >>>> will need to move to keep alphabetic order) >>>> * Is a layout required? What layout is used if nothing is specified? >>>> >>>> -The name of the Appender. >>>> +The name of the Appender. Required. >>>> >>>> (Parameter Name) >>>> -Layout >>>> +layout (lower case) >>>> >>>> -Filters >>>> +filters (lower case); other appenders use singular "filter" without >>>> trailing 's', but the code for JeroMQ says @PluginElement("Filters") >>>> Filter filter >>>> >>>> -Property, Type=Property >>>> +properties (lower case, plural), Type=Property[] - to be consistent with >>>> docs for PropertiesRewritePolicy in RewriteAppender >>>> >>>> >>>> manual/layouts.html (CsvLogEventLayout bug, site errors) >>>> * CSV Layout is missing from the left nav-bar in Layouts >>>> * CSV Layout section should mention dependency on Apache Commons CSV. (See >>>> JSONLayout on same page.) >>>> * Bug: CsvLogEventLayout generates NanoTime timestamps but these are >>>> always zero. >>>> To fix this, add the below code to the CsvLogEventLayout constructor: >>>> // LOG4J2-1074 Switch to actual clock if nanosecond timestamps are >>>> required in config. >>>> // LoggerContext will notify known NanoClockFactory users that the >>>> configuration has changed. >>>> NanoClockFactory.setMode(NanoClockFactory.Mode.System); >>>> >>>> * GELF Layout should be before HTML Layout in body text and in left >>>> nav-bar (alphabetical order) >>>> * HTML Layout should be before JSON Layout in body text (alphabetical >>>> order - the nav-bar order is correct) >>>> * (Under Location Information) >>>> -%C or $class - this is rendered as "%C or class java.lang.Object" >>>> +%C or %class >>>> >>>> >>>> manual/customconfig.html (improvements) >>>> * Side-nav menu title "Extending Log4j Configuration" should be >>>> "Programmatic Log4j Configuration" >>>> * Title "Custom Configurations" -> "Programmatic Configuration" >>>> >>>> >>>> log4j-api/dependency-convergence.html >>>> Error: You do not have 100 % convergence. - is this a showstopper? >>>> >>>> log4j-api/clirr-report.html >>>> 77 Clirr errors - I believe these are all expected and can be ignored. >>>> >>>> log4j-api/checkstyle.html >>>> 122 checkstyle errors - not showstoppers >>>> >>>> log4j-core/index.html >>>> * Missing dependency information for JeroMQ/ZeroMQ Appender on JeroMQ >>>> library >>>> * Missing dependency information for CSV layouts on Apache Commons CSV >>>> >>>> log4j-core/dependency-convergence.html >>>> Error: You do not have 100 % convergence. - Is this a showstopper? >>>> >>>> log4j-core/checkstyle.html >>>> 1652 checkstyle errors - not showstoppers >>>> >>>> >>>> log4j-liquibase/index.html >>>> -due the the plugin auto discovery >>>> -due to the plugin auto discovery >>>> >>>> log4j-liquibase/dependency-convergence.html >>>> Error: You do not have 100 % convergence. - Is this a showstopper? >>>> >>>> >>>> >>>> >>>> On Mon, Sep 21, 2015 at 11:04 AM, Ralph Goers <[email protected] >>>> <>> wrote: >>>> This is a vote to release Log4j 2.4, the next version of the Log4j 2 >>>> project. >>>> >>>> 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 (or more if required). All votes >>>> are welcome, 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: >>>> >>>> New features: >>>> o LOG4J2-635: Add support for configuration via Properties. >>>> o LOG4J2-952: Add ConfigurationBuilder. >>>> o LOG4J2-599: Added support for Java 8 lambda expressions to lazily >>>> construct a log message only if >>>> the requested log level is enabled. >>>> o LOG4J2-1118: Updated Logger wrapper generator tool to add Java 8 lambda >>>> support for custom log levels. >>>> o LOG4J2-1107: New Appender for Apache Kafka. Thanks to Mikael Ståldal. >>>> o LOG4J2-1113: New publisher Appender for ZeroMQ (using JeroMQ). Thanks >>>> to Gary Gregory. >>>> o LOG4J2-1088: Add Comma Separated Value (CSV) layouts for parameter and >>>> event logging. Thanks to Gary Gregory. >>>> o LOG4J2-1090: Add Core Configurator APIs to change a logger's level. >>>> o LOG4J2-1105: Add API org.apache.logging.log4j.Level.isInRange(Level, >>>> Level). Thanks to Gary Gregory. >>>> o LOG4J2-1106: Add a LevelRangeFilter class. Thanks to Gary Gregory. >>>> o LOG4J2-1076: Added support for system nanosecond time in pattern layout. >>>> o LOG4J2-1075: Added support for compressing to bzip2 format on file >>>> rollover. >>>> o LOG4J2-1077: Support additional Apache Commons Compress compression >>>> formats on rollover: Deflate, Pack200, XY. >>>> o LOG4J2-767: New module for Liquibase integration. Thanks to Mikael >>>> Ståldal. >>>> o LOG4J2-1023: New RewritePolicy for changing level of a log event. >>>> Thanks to Mikael Ståldal. >>>> o LOG4J2-1015: Add a way to route messages based on the %marker in Layout >>>> for RoutingAppender. Thanks to Daniel Marcotte. >>>> o LOG4J2-1050: Add a Log4jLookup class to help write log files relative >>>> to log4j2.xml. Thanks to Adam Retter. >>>> o LOG4J2-1057: Add API >>>> org.apache.logging.log4j.LogManager.getFormatterLogger(). >>>> o LOG4J2-1066: Expose Log4jContextFactory's ShutdownCallbackRegistry. >>>> Thanks to Charles Allen. >>>> >>>> Fixed Bugs: >>>> o LOG4J2-1121: Fixed potential race condition on reconfiguration. >>>> Introduced ReliabilityStrategy to facilitate >>>> switching between different mechanisms for preventing log events >>>> from being dropped on reconfiguration. >>>> o LOG4J2-1123: Core Configurator.initialize(String, ClassLoader, String) >>>> fails to work when config location is a file path. Thanks to Gary Gregory. >>>> o LOG4J2-1117: OutputStreamManager in ConsoleAppender leaking managers. >>>> Thanks to Marcus Thiesen. >>>> o LOG4J2-1044: Write pending events to Flume when the appender is stopped. >>>> o LOG4J2-1108: NullPointerException when passing null to >>>> java.util.logging.Logger.setLevel(). Thanks to Mikael Ståldal. >>>> o LOG4J2-1110: org.apache.logging.log4j.jul.CoreLogger.setLevel() checks >>>> for security permission too late. >>>> o LOG4J2-1084: Misleading StatusLogger WARN event in LogManager with >>>> java.util.Map. Thanks to Philipp Schneider. >>>> o LOG4J2-1051: NoClassDefFoundError when starting app on Google App >>>> Engine. Thanks to Lukasz Lenart. >>>> o LOG4J2-684: ExtendedThrowablePatternConverter does not print suppressed >>>> exceptions. Thanks to Joern Huxhorn, Mauro Molinari. >>>> o LOG4J2-1069: Improper handling of JSON escape chars when deserializing >>>> JSON log events. Thanks to Sam Braam. >>>> o LOG4J2-1068: Exceptions not logged when using TcpSocketServer + >>>> SerializedLayout. Thanks to Andy McMullan. >>>> o LOG4J2-1067: ThrowableProxy getExtendedStackTraceAsString throws NPE on >>>> deserialized nested exceptions. Thanks to Sam Braam. >>>> o LOG4J2-1049: AsyncAppender now resets the thread interrupted flag after >>>> catching InterruptedException. Thanks to Robert Schaft. >>>> o LOG4J2-1048: FileConfigurationMonitor unnecessarily calls >>>> System.currentTimeMillis() causing high CPU usage. Thanks to Nikhil. >>>> o LOG4J2-1037: Backward compatibility issue in log4j-1.2-api NDC pop() >>>> and peek(). Thanks to Marc Dergacz. >>>> o LOG4J2-1025: Custom java.util.logging.Level gives null Log4j Level and >>>> causes NPE. Thanks to Mikael Ståldal. >>>> o LOG4J2-1033: SimpleLogger creates unnecessary Map objects by calling >>>> ThreadContext.getContext() instead of getImmutableContext(). Thanks to >>>> Mikael Ståldal. >>>> o LOG4J2-1026: HighlightConverter does not obey noConsoleNoAnsi. >>>> o LOG4J2-1019: ZipCompressAction leaves files open until GC when an IO >>>> error takes place. >>>> o LOG4J2-1020: GzCompressAction leaves files open until GC when an IO >>>> error takes place. >>>> o LOG4J2-1038: Incorrect documentation for layout default charset. Thanks >>>> to Gili. >>>> o LOG4J2-1042: Socket and Syslog appenders don't take timeout into >>>> account at startup. Thanks to Guillaume Turri. >>>> o LOG4J2-934: Circular suppressed Exception throws StackOverflowError. >>>> Thanks to Kenneth Gendron. >>>> o LOG4J2-1046: Circular Exception cause throws StackOverflowError. Thanks >>>> to Kenneth Gendron. >>>> o LOG4J2-982: Use System.nanoTime() to measure time intervals. Thanks to >>>> Mikhail Mazurskiy. >>>> o LOG4J2-1045: Externalize log4j2.xml via URL resource. Thanks to Günter >>>> Albrecht. >>>> o LOG4J2-1058: Log4jMarker#contains(String) does not respect >>>> org.slf4j.Marker contract. Thanks to Daniel Branzea. >>>> o LOG4J2-1060: Log4jMarker#contains(Marker) does not respect >>>> org.slf4j.Marker contract. >>>> o LOG4J2-1061: Log4jMarker#remove(Marker) does not respect >>>> org.slf4j.Marker contract. >>>> o LOG4J2-1062: Log4jMarker#add(Marker) does not respect org.slf4j.Marker >>>> contract. >>>> o LOG4J2-1064: org.apache.logging.slf4j.Log4jMarker does not implement >>>> org.slf4j.Marker.equals(Object) org.slf4j.Marker.hashCode(). >>>> o LOG4J2-889: Header in layout should not be written on application >>>> startup if appending to an existing file. Fixes LOG4J2-1030. Thanks to >>>> Maciej Karaś, Kenneth Leider. >>>> o LOG4J2-918: Clarify documentation for combining async with sync loggers. >>>> o LOG4J2-1078: GelfLayout throws exception if some log event fields are >>>> null. Thanks to Mikael Ståldal. >>>> >>>> Changes: >>>> o LOG4J2-1017: Update Java platform from Java 6 to 7. From this version >>>> onwards, log4j 2 requires Java 7. >>>> o LOG4J2-812: PatternLayout timestamp formatting performance improvement: >>>> replaced synchronized SimpleDateFormat with >>>> Apache Commons FastDateFormat. This and better caching resulted in >>>> a ~3-30X faster timestamp formatting. >>>> o LOG4J2-1097: PatternLayout timestamp formatting performance >>>> improvement: predefined date formats (and variants using >>>> a period '.' millisecond separator instead of ',') are now >>>> formatted ~2-10X faster than other date formats. >>>> o LOG4J2-1096: Improved performance of >>>> ParameterizedMessage::getFormattedMessage by ~2X. >>>> o LOG4J2-1120: LoggerConfig performance improvements: avoid unnecessary >>>> lock acquisition, use more efficient data structure. >>>> o LOG4J2-1125: PatternLayout performance improvement by caching and >>>> reusing a ThreadLocal StringBuilder. >>>> o LOG4J2-1114: Add thread name to status logger layout. >>>> o LOG4J2-1010: Pass log event when interpolating logger properties. >>>> o LOG4J2-1044: Support batchSize in FlumeAvroManager. >>>> o LOG4J2-1065: Define org.apache.logging.log4j.Marker.equals(Object) and >>>> org.apache.logging.log4j.Marker.hashCode(). >>>> o LOG4J2-1063: Avoid creating temporary array object in >>>> org.apache.logging.slf4j.Log4jMarker.iterator(). >>>> o LOG4J2-890: log4j-web-2.1 should workaround a bug in JBOSS EAP 6.2. >>>> Thanks to Hassan Kalaldeh, Robert Andersson, Remko Popma. >>>> o LOG4J2-403: MongoDB appender, username and password should be optional. >>>> Thanks to Poorna Subhash P, Jeremy Lautman. >>>> o LOG4J2-1035: Log4j2 tries to SystemClassLoader when running on Google >>>> AppEngine. >>>> o LOG4J2-1022: Allow a list of keys to be specified in the MDC pattern >>>> converter. >>>> o LOG4J2-959: Fix FindBugs DM_DEFAULT_ENCODING bug in >>>> SimpleLogger.logMessage() and simplify code. >>>> o LOG4J2-1036: Update Apache Flume from 1.5.2 to 1.6.0. >>>> o LOG4J2-1041: Update MongoDB driver from 2.11.2 to 2.13.2. >>>> o LOG4J2-1018: Update database tests from H2 1.3.175 to 1.3.176. >>>> o LOG4J2-1070: Update Java Mail from 1.5.2 to 1.5.4. >>>> o LOG4J2-1079: Update Jackson from 2.5.3 to 2.5.4. >>>> o LOG4J2-1879: Update Jackson from 2.5.4 to 2.6.0. >>>> o LOG4J2-1092: Update Jackson from 2.6.0 to 2.6.1. >>>> o LOG4J2-1104: Update Apache Commons Compress from 1.9 to 1.10. >>>> >>>> Removed: >>>> o Removed experimental interface LevelLogger which got committed to master >>>> by mistake. >>>> >>>> Tag:https:// >>>> <https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=tree;h=380e13cd7ab965942f1d5cfabd73dd056d728b28;hb=383a8194acab4a740d22b69c023ca3af6cb9c664>git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=tree;h=380e13cd7ab965942f1d5cfabd73dd056d728b28;hb=383a8194acab4a740d22b69c023ca3af6cb9c664 >>>> >>>> <http://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=tree;h=380e13cd7ab965942f1d5cfabd73dd056d728b28;hb=383a8194acab4a740d22b69c023ca3af6cb9c664> >>>> or >>>> a) for a new copy do "git clone >>>> https://git-wip-us.apache.org/repos/asf/logging-log4j2.git >>>> <https://git-wip-us.apache.org/repos/asf/logging-log4j2.git>" and then >>>> "git checkout tags/log4j-2.4" >>>> b) for an existing working copy to “git pull” and then “git checkout >>>> tags/log4j-2.4” >>>> >>>> Web Site: http://people.apache.org/~rgoers/log4j2/ >>>> <http://people.apache.org/~rgoers/log4j2/> >>>> >>>> Artifacts: >>>> https://repository.apache.org/content/repositories/orgapachelogging-1015 >>>> <https://repository.apache.org/content/repositories/orgapachelogging-1015> >>>> >>>> You may download all the artifacts by executing: >>>> >>>> wget -e robots=off --cut-dirs=7 -nH -r -p -np --no-check-certificate >>>> https://repository.apache.org/content/repositories/orgapachelogging-1015/org/apache/logging/log4j/ >>>> >>>> <https://repository.apache.org/content/repositories/orgapachelogging-1015/org/apache/logging/log4j/> >>>> Ralph >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> E-Mail: [email protected] <mailto:[email protected]> | >>>> [email protected] <mailto:[email protected]> >>>> Java Persistence with Hibernate, Second Edition >>>> <http://www.manning.com/bauer3/> >>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>> Spring Batch in Action <http://www.manning.com/templier/> >>>> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/> >>>> Home: http://garygregory.com/ <http://garygregory.com/> >>>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> >> >> >> >> >> -- >> E-Mail: [email protected] <mailto:[email protected]> | >> [email protected] <mailto:[email protected]> >> Java Persistence with Hibernate, Second Edition >> <http://www.manning.com/bauer3/> >> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >> Spring Batch in Action <http://www.manning.com/templier/> >> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/> >> Home: http://garygregory.com/ <http://garygregory.com/> >> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> > > > > -- > E-Mail: [email protected] <mailto:[email protected]> | > [email protected] <mailto:[email protected]> > Java Persistence with Hibernate, Second Edition > <http://www.manning.com/bauer3/> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > Spring Batch in Action <http://www.manning.com/templier/> > Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/> > Home: http://garygregory.com/ <http://garygregory.com/> > Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
