You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Remko Popma (JIRA)" <ji...@apache.org> on 2016/04/18 17:56:25 UTC

[jira] [Comment Edited] (LOG4J2-1334) Garbage-free synchronous logging: add LogEventFactory that reuses a cached LogEvent

    [ https://issues.apache.org/jira/browse/LOG4J2-1334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15244659#comment-15244659 ] 

Remko Popma edited comment on LOG4J2-1334 at 4/18/16 3:55 PM:
--------------------------------------------------------------

I made good progress on this ticket in the last week. Still to do:

(/) I need to add more unit tests for MutableLogEvent and the ReusableLogEventFactory.
(-) Two of the current unit tests fail when I enable synchronous garbage-free logging: CsvParameterLayoutTest and LoggerTest.paramWithExceptionTest(). Both are related to LOG4J2-1342: passing on parameters in a (reusable) ParameterizedMessage from the application thread to the asynchronous background thread.
(-) The new GcFreeMixedSyncAyncLoggingTest fails because AsyncLoggerConfigDisruptor#prepareEvent allocates objects.
(-) Started working on a latency test to compare garbage-free logging to classic logging.


was (Author: remkop@yahoo.com):
I made good progress on this ticket in the last week. Still to do:

- I need to add more unit tests for MutableLogEvent and the ReusableLogEventFactory.
- Two of the current unit tests fail when I enable synchronous garbage-free logging: CsvParameterLayoutTest and one more (forgot which). Both are related to LOG4J2-1342: passing on parameters in a ParameterizedMessage from the application thread to the asynchronous background thread.
- The new GcFreeMixedSyncAyncLoggingTest fails because objects are still being allocated somewhere when enqueueing a MutableLogEvent.
- Started working on a latency test to compare garbage-free logging to classic logging.

> Garbage-free synchronous logging: add LogEventFactory that reuses a cached LogEvent
> -----------------------------------------------------------------------------------
>
>                 Key: LOG4J2-1334
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1334
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.5
>            Reporter: Remko Popma
>            Assignee: Remko Popma
>             Fix For: 2.6
>
>
> Until now I kept the scope of the garbage-free logging epic LOG4J2-1270 limited to asynchronous logging with all loggers asynchronous. This seemed a natural thing to do since async loggers already have pre-allocated all LogEvent instances.
> Now that LOG4J2-1270 is nearing completion it looks as if the only thing that is required to allow synchronous logging to be garbage-free is a reusable LogEvent implementation, stored in a ThreadLocal. This ticket is to analyse  and track the work for this option.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org