]> source.dussan.org Git - sonar-scanner-cli.git/commitdiff
SQSCANNER-30 Add timestamp to logs in debug/verbose 13/head
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Thu, 15 Sep 2016 09:56:46 +0000 (11:56 +0200)
committerDuarte Meneses <duarte.meneses@sonarsource.com>
Thu, 15 Sep 2016 09:58:09 +0000 (11:58 +0200)
src/main/java/org/sonarsource/scanner/cli/Logs.java
src/test/java/org/sonarsource/scanner/cli/LogsTest.java

index e4fc31b3e38e14aba3a1b6d95ec8abdb065721ca..c86decfd58b5e5c7a6e7a40889c8e7f5353e54b0 100644 (file)
 package org.sonarsource.scanner.cli;
 
 import java.io.PrintStream;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
 
 public class Logs {
+  private DateTimeFormatter timeFormatter;
   private boolean debugEnabled = false;
   private boolean displayStackTrace = false;
   private PrintStream stdOut;
@@ -30,6 +33,7 @@ public class Logs {
   public Logs(PrintStream stdOut, PrintStream stdErr) {
     this.stdErr = stdErr;
     this.stdOut = stdOut;
+    this.timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss.SSS");
   }
 
   public void setDebugEnabled(boolean debugEnabled) {
@@ -39,33 +43,45 @@ public class Logs {
   public void setDisplayStackTrace(boolean displayStackTrace) {
     this.displayStackTrace = displayStackTrace;
   }
-  
+
   public boolean isDebugEnabled() {
     return debugEnabled;
   }
 
   public void debug(String message) {
     if (isDebugEnabled()) {
-      stdOut.println("DEBUG: " + message);
+      LocalTime currentTime = LocalTime.now();
+      String timestamp = currentTime.format(timeFormatter);
+      stdOut.println(timestamp + " DEBUG: " + message);
     }
   }
 
   public void info(String message) {
-    stdOut.println("INFO: " + message);
+    print(stdOut, "INFO: " + message);
   }
 
   public void warn(String message) {
-    stdOut.println("WARN: " + message);
+    print(stdErr, "WARN: " + message);
   }
 
   public void error(String message) {
-    stdErr.println("ERROR: " + message);
+    print(stdErr, "ERROR: " + message);
   }
 
   public void error(String message, Throwable t) {
-    stdErr.println("ERROR: " + message);
+    print(stdErr, "ERROR: " + message);
     if (t != null && displayStackTrace) {
       t.printStackTrace(stdErr);
     }
   }
+
+  private void print(PrintStream stream, String msg) {
+    if (debugEnabled) {
+      LocalTime currentTime = LocalTime.now();
+      String timestamp = currentTime.format(timeFormatter);
+      stream.println(timestamp + " " + msg);
+    } else {
+      stream.println(msg);
+    }
+  }
 }
index c3b5e32c796f14fdf825c36b00b416c017787aea..cc8ab382d4578433a0f9f869d7ab9b070d37a676 100644 (file)
@@ -21,6 +21,7 @@ package org.sonarsource.scanner.cli;
 
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.sonarsource.scanner.cli.Logs;
@@ -50,19 +51,19 @@ public class LogsTest {
     verify(stdOut).println("INFO: info");
     verifyNoMoreInteractions(stdOut, stdErr);
   }
-  
+
   @Test
   public void testError() {
     Exception e = new NullPointerException("exception");
     logs.setDisplayStackTrace(false);
     logs.error("error1");
     verify(stdErr).println("ERROR: error1");
-    
+
     logs.error("error2", e);
     verify(stdErr).println("ERROR: error2");
-    
+
     verifyNoMoreInteractions(stdOut, stdErr);
-    
+
     logs.setDisplayStackTrace(true);
     logs.error("error3", e);
     verify(stdErr).println("ERROR: error3");
@@ -74,7 +75,7 @@ public class LogsTest {
     logs.setDebugEnabled(true);
 
     logs.debug("debug");
-    verify(stdOut).println("DEBUG: debug");
+    verify(stdOut).println(Matchers.matches("\\d\\d:\\d\\d:\\d\\d.\\d\\d\\d DEBUG: debug$"));
 
     logs.setDebugEnabled(false);
     logs.debug("debug");