You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Ralph Goers (JIRA)" <ji...@apache.org> on 2019/03/20 23:45:00 UTC
[jira] [Commented] (LOG4J2-2341) JsonLayout not working with
AsyncLoggerContextSelector in 2.11.0
[ https://issues.apache.org/jira/browse/LOG4J2-2341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16797673#comment-16797673 ]
Ralph Goers commented on LOG4J2-2341:
-------------------------------------
This fix needs to be re-evaluated as it is causing a huge performance hit in the FlumeAppender when using the JSON Layout.
> 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)