java/sql-dk/src/info/globalcode/sql/dk/logging/ColorfulConsoleFormatter.java
branchv_0
changeset 59 5f745ae795a8
parent 55 f5ed7c4efacc
child 155 eb3676c6929b
     1.1 --- a/java/sql-dk/src/info/globalcode/sql/dk/logging/ColorfulConsoleFormatter.java	Wed Dec 25 01:23:27 2013 +0100
     1.2 +++ b/java/sql-dk/src/info/globalcode/sql/dk/logging/ColorfulConsoleFormatter.java	Wed Dec 25 02:04:57 2013 +0100
     1.3 @@ -32,13 +32,15 @@
     1.4   */
     1.5  public class ColorfulConsoleFormatter extends Formatter {
     1.6  
     1.7 +	private boolean printStacktrace = false;
     1.8 +
     1.9  	@Override
    1.10  	public String format(LogRecord r) {
    1.11  		StringWriter sw = new StringWriter();
    1.12  		try (ColorfulPrintWriter out = new ColorfulPrintWriter(sw)) {
    1.13  			printLevel(out, r.getLevel());
    1.14  			printMessage(out, r);
    1.15 -			printThrowable(out, r.getThrown());
    1.16 +			printThrowable(out, r);
    1.17  			out.println();
    1.18  		}
    1.19  		return sw.toString();
    1.20 @@ -46,7 +48,6 @@
    1.21  
    1.22  	private void printLevel(ColorfulPrintWriter out, Level l) {
    1.23  		TerminalColor color = TerminalColor.Magenta;
    1.24 -		TerminalStyle style;
    1.25  
    1.26  		if (l == Level.SEVERE) {
    1.27  			color = TerminalColor.Red;
    1.28 @@ -61,7 +62,8 @@
    1.29  		out.print(formatMessage(r));
    1.30  	}
    1.31  
    1.32 -	private void printThrowable(ColorfulPrintWriter out, Throwable t) {
    1.33 +	private void printThrowable(ColorfulPrintWriter out, LogRecord r) {
    1.34 +		Throwable t = r.getThrown();
    1.35  		if (t != null) {
    1.36  			out.print(": ");
    1.37  			out.print(TerminalColor.Red, t.getClass().getSimpleName());
    1.38 @@ -70,6 +72,21 @@
    1.39  				out.print(": ");
    1.40  				out.print(message);
    1.41  			}
    1.42 +			if (printStacktrace) {
    1.43 +				out.println();
    1.44 +				out.setForegroundColor(TerminalColor.Yellow);
    1.45 +				out.setStyle(TerminalStyle.Dim);
    1.46 +				t.printStackTrace(out);
    1.47 +				out.resetAll();
    1.48 +			}
    1.49  		}
    1.50  	}
    1.51 +
    1.52 +	public boolean isPrintStacktrace() {
    1.53 +		return printStacktrace;
    1.54 +	}
    1.55 +
    1.56 +	public void setPrintStacktrace(boolean printStacktrace) {
    1.57 +		this.printStacktrace = printStacktrace;
    1.58 +	}
    1.59  }