Skip to content

Commit

Permalink
Merge pull request #2051 from emeroad/#2026_remove_JDK_logger_dependency
Browse files Browse the repository at this point in the history
#2026 remove JDK logger dependency
  • Loading branch information
emeroad committed Sep 5, 2016
2 parents 3935cc5 + 5b13697 commit d949add
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
package com.navercorp.pinpoint.bootstrap;

import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.MessageFormat;

/**
Expand Down Expand Up @@ -54,7 +56,7 @@ public BootLogger(String loggerName) {
throw new NullPointerException("loggerName must not be null");
}
// this.loggerName = loggerName;
this.messagePattern = "{0,date,yyyy-MM-dd HH:mm:ss SSS} [{1}](" + loggerName + ") {2}";
this.messagePattern = "{0,date,yyyy-MM-dd HH:mm:ss} [{1}](" + loggerName + ") {2}{3}";
this.out = out;
this.err = err;
}
Expand All @@ -63,10 +65,12 @@ static BootLogger getLogger(String loggerName) {
return new BootLogger(loggerName);
}

private String format(String logLevel, String msg) {
private String format(String logLevel, String msg, String exceptionMessage) {
exceptionMessage = defaultString(exceptionMessage, "");

MessageFormat messageFormat = new MessageFormat(messagePattern);
final long date = System.currentTimeMillis();
Object[] parameter = {date, logLevel, msg};
Object[] parameter = {date, logLevel, msg, exceptionMessage};
return messageFormat.format(parameter);
}

Expand All @@ -75,7 +79,7 @@ public boolean isInfoEnabled() {
}

public void info(String msg) {
String formatMessage = format("INFO ", msg);
String formatMessage = format("INFO ", msg, "");
this.out.println(formatMessage);
}

Expand All @@ -85,12 +89,31 @@ public boolean isWarnEnabled() {
}

public void warn(String msg) {
String formatMessage = format("WARN ", msg);
this.err.println(formatMessage);
warn(msg, null);
}

public void warn(String msg, Throwable throwable) {
warn(msg);
throwable.printStackTrace(this.err);
String exceptionMessage = toString(throwable);
String formatMessage = format("WARN ", msg, exceptionMessage);
this.err.println(formatMessage);
}

private String toString(Throwable throwable) {
if (throwable == null) {
return "";
}
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
pw.println();
throwable.printStackTrace(pw);
pw.close();
return sw.toString();
}

private String defaultString(String exceptionMessage, String defaultValue) {
if (exceptionMessage == null) {
return defaultValue;
}
return exceptionMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
package com.navercorp.pinpoint.common.util.logger;

import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.MessageFormat;

/**
Expand Down Expand Up @@ -48,7 +50,7 @@ public StdoutCommonLogger(String loggerName) {
}

// this.loggerName = loggerName;
this.messagePattern = "{0,date,yyyy-MM-dd HH:mm:ss SSS} [{1}](" + loggerName + ") {2}";
this.messagePattern = "{0,date,yyyy-MM-dd HH:mm:ss} [{1}](" + loggerName + ") {2}{3}";
this.out = out;
this.err = err;
}
Expand All @@ -75,16 +77,17 @@ public void debug(String msg) {

@Override
public void info(String msg) {
String message = format("INFO ", msg);
String message = format("INFO ", msg, "");
this.out.println(message);
}

private String format(String logLevel, String msg) {
private String format(String logLevel, String msg, String exceptionMessage) {
exceptionMessage = defaultString(exceptionMessage, "");

MessageFormat messageFormat = new MessageFormat(messagePattern);

final long date = System.currentTimeMillis();
Object[] parameter = {date, logLevel, msg};
Object[] parameter = {date, logLevel, msg, exceptionMessage};
return messageFormat.format(parameter);
}

Expand All @@ -100,13 +103,32 @@ public boolean isWarnEnabled() {

@Override
public void warn(String msg) {
String message = format("WARN ", msg);
this.err.println(message);
warn(msg, null);
}

@Override
public void warn(String msg, Throwable th) {
warn(msg);
th.printStackTrace(this.err);
public void warn(String msg, Throwable throwable) {
String exceptionMessage = toString(throwable);
String message = format("WARN ", msg, exceptionMessage);
this.err.println(message);
}

private String toString(Throwable throwable) {
if (throwable == null) {
return "";
}
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
pw.println();
throwable.printStackTrace(pw);
pw.close();
return sw.toString();
}

private String defaultString(String exceptionMessage, String defaultValue) {
if (exceptionMessage == null) {
return defaultValue;
}
return exceptionMessage;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,56 +33,26 @@ public class StdoutCommonLoggerTest {

private final Logger logger = LoggerFactory.getLogger(getClass());

private ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
private PrintStream out = new PrintStream(outputStream);

private ByteArrayOutputStream errOutputStream = new ByteArrayOutputStream();
private PrintStream err = new PrintStream(errOutputStream);

private StdoutCommonLogger commonLogger;

@Before
public void setUp() throws Exception {
this.outputStream = new ByteArrayOutputStream();
this.out = new PrintStream(outputStream);

this.errOutputStream = new ByteArrayOutputStream();
this.err= new PrintStream(errOutputStream);

this.commonLogger = new StdoutCommonLogger("StdoutCommonLoggerTest", out, err);
}

private String getOut() {
return getLogMessage(this.outputStream);
}

private String getError() {
return getLogMessage(this.errOutputStream);
}

private String getLogMessage(ByteArrayOutputStream byteArrayOutputStream) {
String message = byteArrayOutputStream.toString();
byteArrayOutputStream.reset();
return message;
}

@Test
public void testLogging() {
LoggerHolder loggerHolder = new LoggerHolder("StdoutCommonLoggerTest");
CommonLogger commonLogger = loggerHolder.getLogger();

commonLogger.debug("info test");
// assertMessage(getOut(), null);

commonLogger.info("info test 1");
assertMessage(getOut(), "info test 1");
assertMessage(loggerHolder.getOut(), "info test 1");

commonLogger.info("info test 2");
assertMessage(getOut(), "info test 2");
assertMessage(loggerHolder.getOut(), "info test 2");

commonLogger.warn("warn test");
assertMessage(getError(), "warn test");
assertMessage(loggerHolder.getError(), "warn test");

commonLogger.warn("warn test error", new Exception("testException"));
assertMessage(getError(), "warn test");
assertMessage(loggerHolder.getError(), "warn test");
}

private void assertMessage(String out, String message) {
Expand All @@ -91,4 +61,37 @@ private void assertMessage(String out, String message) {

}


private static class LoggerHolder {
private final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
private final PrintStream out = new PrintStream(outputStream);

private final ByteArrayOutputStream errOutputStream = new ByteArrayOutputStream();
private final PrintStream err = new PrintStream(errOutputStream);

private final StdoutCommonLogger logger;

public LoggerHolder(String loggerName) {
logger = new StdoutCommonLogger(loggerName, out, err);
}

public CommonLogger getLogger() {
return logger;
}

private String getOut() {
return getLogMessage(this.outputStream);
}

private String getError() {
return getLogMessage(this.errOutputStream);
}

private String getLogMessage(ByteArrayOutputStream byteArrayOutputStream) {
String message = byteArrayOutputStream.toString();
byteArrayOutputStream.reset();
return message;
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public Logger(String name, Level level) {
Logger(String name, Level level, PrintStream out, PrintStream err) {
this.name = name;
this.level = level;
this.messagePattern = "{0,date,yyyy-MM-dd HH:mm:ss SSS} [{1}](" + name + ") {2}{3}";
this.messagePattern = "{0,date,yyyy-MM-dd HH:mm:ss} [{1}](" + name + ") {2}{3}";
this.out = out;
this.err = err;
}
Expand Down

0 comments on commit d949add

Please sign in to comment.