logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <garydgreg...@gmail.com>
Subject Re: [VOTE] Log4j 2.4 rc1
Date Tue, 22 Sep 2015 22:33:04 GMT
Is LOG4J2-1127 worth another RC?

Gary

On Mon, Sep 21, 2015 at 8:32 PM, Remko Popma <remko.popma@gmail.com> 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 <ralph.goers@dslextreme.com>
> 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
>>  or
>>
>> a)  for a new copy do "git clone 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/
>>
>> Artifacts: 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/
>>
>> Ralph
>>
>>
>>
>>
>>
>>
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
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
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Mime
View raw message