Repository: logging-log4j2 Updated Branches: refs/heads/master 1bd8a5139 -> 585beba1e
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/585beba1/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java ---------------------------------------------------------------------- diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java index 611f23f..769fa74 100644 --- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java +++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java @@ -248,6 +248,24 @@ public class FlumeEvent extends SimpleEvent implements LogEvent { } /** + * Returns the ID of the Thread. + * @return the ID of the Thread. + */ + @Override + public long getThreadId() { + return event.getThreadId(); + } + + /** + * Returns the priority of the Thread. + * @return the priority of the Thread. + */ + @Override + public int getThreadPriority() { + return event.getThreadPriority(); + } + + /** * Returns the name of the Thread. * @return the name of the Thread. */ http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/585beba1/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManager.java ---------------------------------------------------------------------- diff --git a/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManager.java b/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManager.java index d879b07..448cd04 100644 --- a/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManager.java +++ b/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManager.java @@ -90,7 +90,9 @@ public final class NoSqlDatabaseManager<W> extends AbstractDatabaseManager { entity.set("marker", buildMarkerEntity(marker)); } + entity.set("threadId", event.getThreadId()); entity.set("threadName", event.getThreadName()); + entity.set("threadPriority", event.getThreadPriority()); entity.set("millis", event.getTimeMillis()); entity.set("date", new java.util.Date(event.getTimeMillis())); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/585beba1/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java ---------------------------------------------------------------------- diff --git a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java index d90a804..7809451 100644 --- a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java +++ b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java @@ -185,7 +185,9 @@ public class NoSqlDatabaseManagerTest { expect(message.getFormattedMessage()).andReturn("My formatted message 01."); expect(event.getSource()).andReturn(new StackTraceElement("com.foo.Bar", "testMethod01", "Bar.java", 15)); expect(event.getMarker()).andReturn(null); + expect(event.getThreadId()).andReturn(1L); expect(event.getThreadName()).andReturn("MyThread-A"); + expect(event.getThreadPriority()).andReturn(1); expect(event.getTimeMillis()).andReturn(1234567890123L).times(2); expect(event.getThrown()).andReturn(null); expect(event.getContextMap()).andReturn(null); @@ -293,7 +295,9 @@ public class NoSqlDatabaseManagerTest { expect(message.getFormattedMessage()).andReturn("Another cool message 02."); expect(event.getSource()).andReturn(new StackTraceElement("com.bar.Foo", "anotherMethod03", "Foo.java", 9)); expect(event.getMarker()).andReturn(MarkerManager.getMarker("LoneMarker")); + expect(event.getThreadId()).andReturn(1L); expect(event.getThreadName()).andReturn("AnotherThread-B"); + expect(event.getThreadPriority()).andReturn(1); expect(event.getTimeMillis()).andReturn(987654321564L).times(2); expect(event.getThrown()).andReturn(exception); expect(event.getContextMap()).andReturn(context); @@ -443,7 +447,9 @@ public class NoSqlDatabaseManagerTest { expect(event.getMarker()).andReturn( MarkerManager.getMarker("AnotherMarker").addParents(MarkerManager.getMarker("Parent1").addParents(MarkerManager.getMarker("GrandParent1")), MarkerManager.getMarker("Parent2"))); + expect(event.getThreadId()).andReturn(1L); expect(event.getThreadName()).andReturn("AnotherThread-B"); + expect(event.getThreadPriority()).andReturn(1); expect(event.getTimeMillis()).andReturn(987654321564L).times(2); expect(event.getThrown()).andReturn(exception2); expect(event.getContextMap()).andReturn(context); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/585beba1/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index d1e92fe..42c4c1b 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -24,6 +24,9 @@ </properties> <body> <release version="2.6" date="2016-MM-DD" description="GA Release 2.6"> + <action issue="LOG4J2-1299" dev="ggregory" type="add"> + Add pattern converter for thread id and priority in PatternLayout. + </action> <action issue="LOG4J2-1271" dev="rpopma" type="add"> Add MessageFactory that avoid allocation by reusing a cached ParameterizedMessage instance. </action> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/585beba1/src/site/xdoc/manual/layouts.xml.vm ---------------------------------------------------------------------- diff --git a/src/site/xdoc/manual/layouts.xml.vm b/src/site/xdoc/manual/layouts.xml.vm index 03b4b05..fa602e4 100644 --- a/src/site/xdoc/manual/layouts.xml.vm +++ b/src/site/xdoc/manual/layouts.xml.vm @@ -166,7 +166,9 @@ logger.debug("one={}, two={}, three={}", 1, 2, 3); <li>Time Nanos</li> <li>Time Millis</li> <li>Level</li> + <li>Thread ID</li> <li>Thread Name</li> + <li>Thread Priority</li> <li>Formatted Message</li> <li>Logger FQCN</li> <li>Logger Name</li> @@ -273,14 +275,18 @@ logger.debug("one={}, two={}, three={}", 1, 2, 3); "logger":"com.foo.Bar", "timestamp":"1376681196470", "level":"INFO", + "threadId":1, "thread":"main", + "threadPriority":1, "message":"Message flushed with immediate flush=true" }, { "logger":"com.foo.Bar", "timestamp":"1376681196471", "level":"ERROR", + "threadId":1, "thread":"main", + "threadPriority":1, "message":"Message flushed with immediate flush=true", "throwable":"java.lang.IllegalArgumentException: badarg\\n\\tat org.apache.logging.log4j.core.appender.JSONCompleteFileAppenderTest.testFlushAtEndOfBatch(JSONCompleteFileAppenderTest.java:54)\\n\\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\\n\\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\\n\\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\\n\\tat java.lang.reflect.Method.invoke(Method.java:606)\\n\\tat org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)\\n\\tat org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)\\n\\tat org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)\\n\\tat org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)\\n\\tat org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)\\n\\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(Bl ockJUnit4ClassRunner.java:70)\\n\\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)\\n\\tat org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)\\n\\tat org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)\\n\\tat org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)\\n\\tat org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)\\n\\tat org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)\\n\\tat org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)\\n\\tat org.junit.runners.ParentRunner.run(ParentRunner.java:309)\\n\\tat org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)\\n\\tat org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)\\n\\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)\\n\\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe stRunner.java:683)\\n\\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)\\n\\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)\\n" } @@ -1233,13 +1239,29 @@ WARN [main]: Message 2</pre> </tr> <tr> <td align="center"> + <b>T</b><br /> + <b>tid</b><br /> + <b>threadId</b> + </td> + <td>Outputs the ID of the thread that generated the logging event.</td> + </tr> + <tr> + <td align="center"> <b>t</b><br /> - <b>thread</b> + <b>thread</b><br /> + <b>threadName</b> </td> <td>Outputs the name of the thread that generated the logging event.</td> </tr> <tr> <td align="center"> + <b>tp</b><br /> + <b>threadPriority</b> + </td> + <td>Outputs the priority of the thread that generated the logging event.</td> + </tr> + <tr> + <td align="center"> <b>x</b><br /> <b>NDC</b> </td> @@ -1714,11 +1736,11 @@ at org.apache.logging.log4j.core.pattern.ExtendedThrowableTest.testException(Ext </p> <pre class="prettyprint linenums"><?xml version="1.0" encoding="UTF-8"?> <Events xmlns="http://logging.apache.org/log4j/2.0/events"> - <Event logger="com.foo.Bar" timestamp="1373436580419" level="INFO" thread="main"> + <Event logger="com.foo.Bar" timestamp="1373436580419" level="INFO" threadId="1" thread="main" threadPriority="1"> <Message><![CDATA[This is a log message 1]]></Message> <Marker parent="Parent Marker"><Child Marker></Marker> </Event> - <Event logger="com.foo.Baz" timestamp="1373436580420" level="INFO" thread="main"> + <Event logger="com.foo.Baz" timestamp="1373436580420" level="INFO" threadId="1" thread="main" threadPriority="1"> <Message><![CDATA[This is a log message 2]]></Message> <Marker><The Marker Name></Marker> </Event>
