We should talk about this in a separate thread. I've provided an
alternative to the stock flow logging for a project to trace API entry and
exists. We should discuss in that thread what are the different ways to do
flow logging... interesting stuff.

Gary

On Tue, Sep 22, 2015 at 10:43 PM, Ralph Goers <[email protected]>
wrote:

> 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]>
> 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]> 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]>
>> 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]>
>>> 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]>
>>> wrote:
>>>
>>> Is LOG4J2-1127 worth another RC?
>>>
>>> Gary
>>>
>>> On Mon, Sep 21, 2015 at 8:32 PM, Remko Popma <[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
>>>>>  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: [email protected] | [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
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>>>
>>>
>>>
>>>
>>
>>
>> --
>> E-Mail: [email protected] | [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
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>>
>>
>
>
> --
> E-Mail: [email protected] | [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
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory
>
>
>


-- 
E-Mail: [email protected] | [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
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to