You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ck...@apache.org on 2021/08/24 18:07:55 UTC

[logging-log4j2] branch master updated: Use time millis from event for `LogEventAdapter` timestamp.

This is an automated email from the ASF dual-hosted git repository.

ckozak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/master by this push:
     new 2645e2a  Use time millis from event for `LogEventAdapter` timestamp.
2645e2a is described below

commit 2645e2acc012334e7099dcae9c0d87042049402a
Author: John Meikle <jo...@motorolasolutions.com>
AuthorDate: Mon Aug 23 20:49:13 2021 +0100

    Use time millis from event for `LogEventAdapter` timestamp.
---
 .../src/main/java/org/apache/log4j/bridge/LogEventAdapter.java       | 5 +++++
 log4j-1.2-api/src/main/java/org/apache/log4j/spi/LoggingEvent.java   | 2 +-
 .../src/test/java/org/apache/log4j/config/RewriteAppenderTest.java   | 2 ++
 src/changes/changes.xml                                              | 4 ++++
 4 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/bridge/LogEventAdapter.java b/log4j-1.2-api/src/main/java/org/apache/log4j/bridge/LogEventAdapter.java
index c440a91..a2572b2 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/bridge/LogEventAdapter.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/bridge/LogEventAdapter.java
@@ -128,6 +128,11 @@ public class LogEventAdapter extends LoggingEvent {
         return event.getLoggerName();
     }
 
+    @Override
+    public long getTimeStamp() {
+        return event.getTimeMillis();
+    }
+
     /**
      * Gets the logger of the event.
      */
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/spi/LoggingEvent.java b/log4j-1.2-api/src/main/java/org/apache/log4j/spi/LoggingEvent.java
index a362187..02e322b 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/spi/LoggingEvent.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/spi/LoggingEvent.java
@@ -60,7 +60,7 @@ public class LoggingEvent {
         return null;
     }
 
-    public final long getTimeStamp() {
+    public long getTimeStamp() {
         return 0;
     }
 
diff --git a/log4j-1.2-api/src/test/java/org/apache/log4j/config/RewriteAppenderTest.java b/log4j-1.2-api/src/test/java/org/apache/log4j/config/RewriteAppenderTest.java
index d7aca5c..7261172 100644
--- a/log4j-1.2-api/src/test/java/org/apache/log4j/config/RewriteAppenderTest.java
+++ b/log4j-1.2-api/src/test/java/org/apache/log4j/config/RewriteAppenderTest.java
@@ -57,6 +57,7 @@ public class RewriteAppenderTest {
         Logger logger = LogManager.getLogger("test");
         ThreadContext.put("key1", "This is a test");
         ThreadContext.put("hello", "world");
+        long logTime = System.currentTimeMillis();
         logger.debug("Say hello");
         LoggerContext context = (LoggerContext) org.apache.logging.log4j.LogManager.getContext(false);
         Configuration configuration = context.getConfiguration();
@@ -73,5 +74,6 @@ public class RewriteAppenderTest {
         assertNotNull("No properties in the event", events.get(0).getProperties());
         assertTrue("Key was not inserted", events.get(0).getProperties().containsKey("key2"));
         assertEquals("Key value is incorrect", "Log4j", events.get(0).getProperties().get("key2"));
+        assertTrue("Timestamp is before point of logging", events.get(0).getTimeStamp() >= logTime);
     }
 }
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 30f23a7..3521955 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -230,6 +230,10 @@
         The methods on LogEvent are preferred.
       </action>
       <!-- FIXES -->
+      <action issue="LOG4J2-3142" dev="ckozak" type="fix" due-to="John Meikle">
+        log4j-1.2-api implements LogEventAdapter.getTimestamp() based on the original event timestamp
+        instead of returning zero.
+      </action>
       <action issue="LOG4J2-3083" dev="ckozak" type="fix">
         log4j-slf4j-impl and log4j-slf4j18-impl correctly detect the calling class using both LoggerFactory.getLogger
         methods as well as LoggerFactory.getILoggerFactory().getLogger.