[
https://issues.apache.org/jira/browse/LOG4J2-623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13995168#comment-13995168
]
Gary Gregory commented on LOG4J2-623:
-------------------------------------
You should expect the following before 2.0 (ASAP):
{code:javascript}
{
"timeMillis": 1,
"thread": "MyThreadName",
"level": "DEBUG",
"loggerName": "a.B",
"marker": {
"name": "Marker1",
"parents": [{
"name": "ParentMarker1"
}, {
"name": "ParentMarker2"
}]
},
"message": "Msg",
"thrown": {
"cause": {
"name": "java.lang.NullPointerException",
"message": "testNPEx",
"localizedMessage": "testNPEx",
"extendedStackTrace": [{
"class": "org.apache.logging.log4j.core.layout.JSONLayoutTest",
"method": "testAllFeatures",
"file": "JSONLayoutTest.java",
"line": 122,
"exact": false,
"location": "test-classes/",
"version": "?"
}, {
"class": "org.apache.logging.log4j.core.layout.JSONLayoutTest",
"method": "testLocationOnCompactOnMdcOn",
"file": "JSONLayoutTest.java",
"line": 298,
"exact": false
}, {
"class": "sun.reflect.NativeMethodAccessorImpl",
"method": "invoke0",
"line": -2,
"exact": false
}, {
"class": "sun.reflect.NativeMethodAccessorImpl",
"method": "invoke",
"line": -1,
"exact": false
}, {
"class": "sun.reflect.DelegatingMethodAccessorImpl",
"method": "invoke",
"line": -1,
"exact": false
}, {
"class": "java.lang.reflect.Method",
"method": "invoke",
"line": -1,
"exact": false
}, {
"class": "org.junit.runners.model.FrameworkMethod$1",
"method": "runReflectiveCall",
"file": "FrameworkMethod.java",
"line": 47,
"exact": false
}, {
"class": "org.junit.internal.runners.model.ReflectiveCallable",
"method": "run",
"file": "ReflectiveCallable.java",
"line": 12,
"exact": false
}, {
"class": "org.junit.runners.model.FrameworkMethod",
"method": "invokeExplosively",
"file": "FrameworkMethod.java",
"line": 44,
"exact": false
}, {
"class": "org.junit.internal.runners.statements.InvokeMethod",
"method": "evaluate",
"file": "InvokeMethod.java",
"line": 17,
"exact": false
}, {
"class": "org.junit.runners.ParentRunner",
"method": "runLeaf",
"file": "ParentRunner.java",
"line": 271,
"exact": false
}, {
"class": "org.junit.runners.BlockJUnit4ClassRunner",
"method": "runChild",
"file": "BlockJUnit4ClassRunner.java",
"line": 70,
"exact": false
}, {
"class": "org.junit.runners.BlockJUnit4ClassRunner",
"method": "runChild",
"file": "BlockJUnit4ClassRunner.java",
"line": 50,
"exact": false
}, {
"class": "org.junit.runners.ParentRunner$3",
"method": "run",
"file": "ParentRunner.java",
"line": 238,
"exact": false
}, {
"class": "org.junit.runners.ParentRunner$1",
"method": "schedule",
"file": "ParentRunner.java",
"line": 63,
"exact": false
}, {
"class": "org.junit.runners.ParentRunner",
"method": "runChildren",
"file": "ParentRunner.java",
"line": 236,
"exact": false
}, {
"class": "org.junit.runners.ParentRunner",
"method": "access$000",
"file": "ParentRunner.java",
"line": 53,
"exact": false
}, {
"class": "org.junit.runners.ParentRunner$2",
"method": "evaluate",
"file": "ParentRunner.java",
"line": 229,
"exact": false
}, {
"class": "org.junit.internal.runners.statements.RunBefores",
"method": "evaluate",
"file": "RunBefores.java",
"line": 26,
"exact": false
}, {
"class": "org.junit.internal.runners.statements.RunAfters",
"method": "evaluate",
"file": "RunAfters.java",
"line": 27,
"exact": false
}, {
"class": "org.junit.runners.ParentRunner",
"method": "run",
"file": "ParentRunner.java",
"line": 309,
"exact": false
}, {
"class": "org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference",
"method": "run",
"file": "JUnit4TestReference.java",
"line": 50,
"exact": false
}, {
"class": "org.eclipse.jdt.internal.junit.runner.TestExecution",
"method": "run",
"file": "TestExecution.java",
"line": 38,
"exact": false
}, {
"class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner",
"method": "runTests",
"file": "RemoteTestRunner.java",
"line": 467,
"exact": false
}, {
"class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner",
"method": "runTests",
"file": "RemoteTestRunner.java",
"line": 683,
"exact": false
}, {
"class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner",
"method": "run",
"file": "RemoteTestRunner.java",
"line": 390,
"exact": false
}, {
"class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner",
"method": "main",
"file": "RemoteTestRunner.java",
"line": 197,
"exact": false
}],
"commonElementCount": 26
},
"name": "java.io.IOException",
"message": "testIOEx",
"localizedMessage": "testIOEx",
"extendedStackTrace": [{
"class": "org.apache.logging.log4j.core.layout.JSONLayoutTest",
"method": "testAllFeatures",
"file": "JSONLayoutTest.java",
"line": 122,
"exact": true,
"location": "test-classes/",
"version": "?"
}, {
"class": "org.apache.logging.log4j.core.layout.JSONLayoutTest",
"method": "testLocationOnCompactOnMdcOn",
"file": "JSONLayoutTest.java",
"line": 298,
"exact": true,
"location": "test-classes/",
"version": "?"
}, {
"class": "sun.reflect.NativeMethodAccessorImpl",
"method": "invoke0",
"line": -2,
"exact": false,
"location": "?",
"version": "1.7.0_55"
}, {
"class": "sun.reflect.NativeMethodAccessorImpl",
"method": "invoke",
"line": -1,
"exact": false,
"location": "?",
"version": "1.7.0_55"
}, {
"class": "sun.reflect.DelegatingMethodAccessorImpl",
"method": "invoke",
"line": -1,
"exact": false,
"location": "?",
"version": "1.7.0_55"
}, {
"class": "java.lang.reflect.Method",
"method": "invoke",
"line": -1,
"exact": false,
"location": "?",
"version": "1.7.0_55"
}, {
"class": "org.junit.runners.model.FrameworkMethod$1",
"method": "runReflectiveCall",
"file": "FrameworkMethod.java",
"line": 47,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.internal.runners.model.ReflectiveCallable",
"method": "run",
"file": "ReflectiveCallable.java",
"line": 12,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.model.FrameworkMethod",
"method": "invokeExplosively",
"file": "FrameworkMethod.java",
"line": 44,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.internal.runners.statements.InvokeMethod",
"method": "evaluate",
"file": "InvokeMethod.java",
"line": 17,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.ParentRunner",
"method": "runLeaf",
"file": "ParentRunner.java",
"line": 271,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.BlockJUnit4ClassRunner",
"method": "runChild",
"file": "BlockJUnit4ClassRunner.java",
"line": 70,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.BlockJUnit4ClassRunner",
"method": "runChild",
"file": "BlockJUnit4ClassRunner.java",
"line": 50,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.ParentRunner$3",
"method": "run",
"file": "ParentRunner.java",
"line": 238,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.ParentRunner$1",
"method": "schedule",
"file": "ParentRunner.java",
"line": 63,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.ParentRunner",
"method": "runChildren",
"file": "ParentRunner.java",
"line": 236,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.ParentRunner",
"method": "access$000",
"file": "ParentRunner.java",
"line": 53,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.ParentRunner$2",
"method": "evaluate",
"file": "ParentRunner.java",
"line": 229,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.internal.runners.statements.RunBefores",
"method": "evaluate",
"file": "RunBefores.java",
"line": 26,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.internal.runners.statements.RunAfters",
"method": "evaluate",
"file": "RunAfters.java",
"line": 27,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.junit.runners.ParentRunner",
"method": "run",
"file": "ParentRunner.java",
"line": 309,
"exact": true,
"location": "junit-4.11.jar",
"version": "?"
}, {
"class": "org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference",
"method": "run",
"file": "JUnit4TestReference.java",
"line": 50,
"exact": true,
"location": ".cp/",
"version": "?"
}, {
"class": "org.eclipse.jdt.internal.junit.runner.TestExecution",
"method": "run",
"file": "TestExecution.java",
"line": 38,
"exact": true,
"location": ".cp/",
"version": "?"
}, {
"class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner",
"method": "runTests",
"file": "RemoteTestRunner.java",
"line": 467,
"exact": true,
"location": ".cp/",
"version": "?"
}, {
"class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner",
"method": "runTests",
"file": "RemoteTestRunner.java",
"line": 683,
"exact": true,
"location": ".cp/",
"version": "?"
}, {
"class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner",
"method": "run",
"file": "RemoteTestRunner.java",
"line": 390,
"exact": true,
"location": ".cp/",
"version": "?"
}, {
"class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner",
"method": "main",
"file": "RemoteTestRunner.java",
"line": 197,
"exact": true,
"location": ".cp/",
"version": "?"
}],
"commonElementCount": 0
},
"loggerFQCN": "f.q.c.n",
"endOfBatch": false,
"contextMap": [{
"key": "MDC.B",
"value": "B_Value"
}, {
"key": "MDC.A",
"value": "A_Value"
}],
"contextStack": ["stack_msg1", "stack_msg2"],
"source": {
"class": "org.apache.logging.log4j.core.layout.JSONLayoutTest",
"method": "testAllFeatures",
"file": "JSONLayoutTest.java",
"line": 120
}
}
{code}
> Better structure of Thread Context Map in JSONLayout
> ----------------------------------------------------
>
> Key: LOG4J2-623
> URL: https://issues.apache.org/jira/browse/LOG4J2-623
> Project: Log4j 2
> Issue Type: Improvement
> Components: Layouts
> Affects Versions: 2.0-rc1
> Reporter: Mikael Ståldal
> Assignee: Ralph Goers
> Priority: Minor
> Fix For: 2.0-rc2
>
>
> Currently, the Thread Context Map looks like this in JSONLayout:
> {code:JavaScript|title=Current}
> "Properties":[
> {
> "name":"UserName",
> "value":"admin"
> },
> {
> "name":"OrgName",
> "value":"test"
> }
> ]
> {code}
> This does not properly make use of the JSON data format. Since the Thread
> Context Map is a map, it should be represented as a JSON object. And why not
> name it "mdc" rather than the quite vauge "Properties"?
> {code:JavaScript|title=Suggested}
> "mdc": {
> "UserName":"admin",
> "OrgName":"test"
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]