From 43e19533f969d0e2a2c0c31669a4de191e8cd67e Mon Sep 17 00:00:00 2001 From: Ajit Thakor <49403056+athakor@users.noreply.github.com> Date: Thu, 12 Dec 2019 23:42:50 -0500 Subject: [PATCH] feat: add label fullStacktrace (#40) * feat: add label fullStacktrace * feat: fix review changes --- .../google/cloud/logging/logback/LoggingAppender.java | 4 +++- .../cloud/logging/logback/LoggingAppenderTest.java | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/google-cloud-contrib/google-cloud-logging-logback/src/main/java/com/google/cloud/logging/logback/LoggingAppender.java b/google-cloud-contrib/google-cloud-logging-logback/src/main/java/com/google/cloud/logging/logback/LoggingAppender.java index 9cf6fcb89..47349d0d7 100644 --- a/google-cloud-contrib/google-cloud-logging-logback/src/main/java/com/google/cloud/logging/logback/LoggingAppender.java +++ b/google-cloud-contrib/google-cloud-logging-logback/src/main/java/com/google/cloud/logging/logback/LoggingAppender.java @@ -72,6 +72,7 @@ public class LoggingAppender extends UnsynchronizedAppenderBase { private static final String LEVEL_NAME_KEY = "levelName"; private static final String LEVEL_VALUE_KEY = "levelValue"; private static final String LOGGER_NAME_KEY = "loggerName"; + private static final String STACKTRACE = "fullStacktrace"; private volatile Logging logging; private LoggingOptions loggingOptions; @@ -269,7 +270,7 @@ private LogEntry logEntryFor(ILoggingEvent e) { Level level = e.getLevel(); LogEntry.Builder builder = - LogEntry.newBuilder(Payload.StringPayload.of(payload.toString().trim())) + LogEntry.newBuilder(Payload.StringPayload.of(e.getMessage().trim())) .setTimestamp(e.getTimeStamp()) .setSeverity(severityFor(level)); @@ -277,6 +278,7 @@ private LogEntry logEntryFor(ILoggingEvent e) { .addLabel(LEVEL_NAME_KEY, level.toString()) .addLabel(LEVEL_VALUE_KEY, String.valueOf(level.toInt())) .addLabel(LOGGER_NAME_KEY, e.getLoggerName()); + .addLabel(STACKTRACE, payload.toString().trim()); for (Map.Entry entry : e.getMDCPropertyMap().entrySet()) { if (null != entry.getKey() && null != entry.getValue()) { diff --git a/google-cloud-contrib/google-cloud-logging-logback/src/test/java/com/google/cloud/logging/logback/LoggingAppenderTest.java b/google-cloud-contrib/google-cloud-logging-logback/src/test/java/com/google/cloud/logging/logback/LoggingAppenderTest.java index 2b456ad3e..4c074c55c 100644 --- a/google-cloud-contrib/google-cloud-logging-logback/src/test/java/com/google/cloud/logging/logback/LoggingAppenderTest.java +++ b/google-cloud-contrib/google-cloud-logging-logback/src/test/java/com/google/cloud/logging/logback/LoggingAppenderTest.java @@ -87,6 +87,7 @@ public void testFlushLevelConfigUpdatesLoggingFlushSeverity() { .put("levelName", "WARN") .put("levelValue", String.valueOf(30000L)) .put("loggerName", this.getClass().getName()) + .put("fullStacktrace", "this is a test".trim()) .build()) .build(); logging.setFlushSeverity(Severity.WARNING); @@ -112,9 +113,10 @@ public void testFilterLogsOnlyLogsAtOrAboveLogLevel() { .setSeverity(Severity.ERROR) .setLabels( new ImmutableMap.Builder() - .put("levelName", "ERROR") - .put("levelValue", String.valueOf(40000L)) - .put("loggerName", this.getClass().getName()) + .put("levelName","ERROR") + .put("levelValue",String.valueOf(40000L)) + .put("loggerName",this.getClass().getName()) + .put("fullStacktrace","this is a test".trim()) .build()) .build(); logging.setFlushSeverity(Severity.ERROR); @@ -150,6 +152,7 @@ public void testEnhancersAddCorrectLabelsToLogEntries() { .put("levelName", "WARN") .put("levelValue", String.valueOf(30000L)) .put("loggerName", this.getClass().getName()) + .put("fullStacktrace", "this is a test".trim()) .put("test-label-1", "test-value-1") .put("test-label-2", "test-value-2") .build()) @@ -199,6 +202,7 @@ public void testMdcValuesAreConvertedToLabels() { .put("levelName", "INFO") .put("levelValue", String.valueOf(20000L)) .put("loggerName", this.getClass().getName()) + .put("fullStacktrace", "this is a test".trim()) .put("mdc1", "value1") .put("mdc2", "value2") .build())