[
https://issues.apache.org/jira/browse/LOG4J2-2341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16797723#comment-16797723
]
Ralph Goers commented on LOG4J2-2341:
-------------------------------------
OK. I am doing testing for cloud deployments and noticed that the FlumeAppender
is 9-10 times slower when using JSONLayout then when using RFC5424Layout and
the SocketAppender is slightly faster than that when using the JSONLayout. So
whatever is happening when it isn't a Log4jLogEvent is terribly slow.
> JsonLayout not working with AsyncLoggerContextSelector in 2.11.0
> ----------------------------------------------------------------
>
> Key: LOG4J2-2341
> URL: https://issues.apache.org/jira/browse/LOG4J2-2341
> Project: Log4j 2
> Issue Type: Bug
> Affects Versions: 2.11.0
> Reporter: Fedor Morozov
> Assignee: Carter Kozak
> Priority: Major
> Fix For: 3.0.0, 2.11.1
>
>
> In version 2.11.0 appenders with JsonLayout don't output json when
> Log4jContextSelector is set to
> org.apache.logging.log4j.core.async.AsyncLoggerContextSelector.
> Here is a sample:
> {code:java}
> package ru.yandex.zen;
> import org.apache.log4j.Logger;
> public class LoggerSample {
> public static void main(String[] args) {
> Logger logger = Logger.getLogger("LoggerSample");
> logger.info("Message 1");
> logger.info("Message 2");
> }
> }
> {code}
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration status="WARN">
> <Appenders>
> <RandomAccessFile name="RandomAccessFile" fileName="async.log"
> immediateFlush="false" append="false">
> <JsonLayout/>
> </RandomAccessFile>
> </Appenders>
> <Loggers>
> <Root level="info">
> <AppenderRef ref="RandomAccessFile"/>
> </Root>
> </Loggers>
> </Configuration>
> {code}
> Without AsyncLoggerContextSelector the log looks like this:
> {code:java}
> ""
> ""
> {code}
> Without AsyncLoggerContextSelector:
> {code:java}
> {
> "thread" : "main",
> "level" : "INFO",
> "loggerName" : "LoggerSample",
> "message" : "Message 1",
> "endOfBatch" : false,
> "loggerFqcn" : "org.apache.log4j.Category",
> "instant" : {
> "epochSecond" : 1527061940,
> "nanoOfSecond" : 637000000
> },
> "threadId" : 1,
> "threadPriority" : 5
> }
> {
> "thread" : "main",
> "level" : "INFO",
> "loggerName" : "LoggerSample",
> "message" : "Message 2",
> "endOfBatch" : false,
> "loggerFqcn" : "org.apache.log4j.Category",
> "instant" : {
> "epochSecond" : 1527061940,
> "nanoOfSecond" : 717000000
> },
> "threadId" : 1,
> "threadPriority" : 5
> }
> {code}
> In our main application Json logger outputs the provided message in quotes,
> not just an empty string. The problem doesn't appear when using asyncRoot or
> asyncLogger.
> My dependencies:
> {code:java}
> compile 'org.apache.logging.log4j:log4j-api:2.11.0'
> compile 'org.apache.logging.log4j:log4j-core:2.11.0'
> compile "org.apache.logging.log4j:log4j-1.2-api:2.11.0"
> compile "com.fasterxml.jackson.core:jackson-core:2.9.4"
> compile "com.fasterxml.jackson.core:jackson-databind:2.9.4"
> {code}
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)