From ea5fff508be84bbd8a3358421bef093c1c5445d3 Mon Sep 17 00:00:00 2001 From: David BRASSELY Date: Thu, 12 Jun 2014 09:05:57 +0200 Subject: [PATCH] OESE-22 Add JAnsi to support ansi escape sequence on Windows --- openesb-standalone-bootstrap/pom.xml | 6 ++++++ .../logger/AnsiColorConsoleHandler.java | 16 ++++++++++++++++ .../logger/BaseColorConsoleHandler.java | 2 +- .../logger/JAnsiColorConsoleHandler.java | 19 +++++++++++++++++++ openesb-standalone-packaging/pom.xml | 7 +++++++ .../src/main/assembly/distribution.xml | 1 + .../main/resources/config/logger.properties | 8 +++++--- 7 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/AnsiColorConsoleHandler.java create mode 100644 openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/JAnsiColorConsoleHandler.java diff --git a/openesb-standalone-bootstrap/pom.xml b/openesb-standalone-bootstrap/pom.xml index 49345b0..d91c0a3 100644 --- a/openesb-standalone-bootstrap/pom.xml +++ b/openesb-standalone-bootstrap/pom.xml @@ -38,5 +38,11 @@ ${project.version} runtime + + + org.fusesource.jansi + jansi + ${jansi.version} + diff --git a/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/AnsiColorConsoleHandler.java b/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/AnsiColorConsoleHandler.java new file mode 100644 index 0000000..71cebf1 --- /dev/null +++ b/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/AnsiColorConsoleHandler.java @@ -0,0 +1,16 @@ +package net.openesb.standalone.logger; + +import java.util.logging.LogRecord; + +/** + * + * @author David BRASSELY (brasseld at gmail.com) + * @author OpenESB Community + */ +public class AnsiColorConsoleHandler extends BaseColorConsoleHandler { + + @Override + public void publish(LogRecord record) { + System.err.print(logRecordToString(record)); + } +} \ No newline at end of file diff --git a/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/BaseColorConsoleHandler.java b/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/BaseColorConsoleHandler.java index cdb6812..1c99b5d 100644 --- a/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/BaseColorConsoleHandler.java +++ b/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/BaseColorConsoleHandler.java @@ -6,7 +6,7 @@ import java.util.logging.Level; import java.util.logging.LogRecord; /** - * Color Console Handler for jdk: using ANSI sequences + * Color Console Handler for jdk: using ANSI sequences directly * * @author David BRASSELY (brasseld at gmail.com) * @author OpenESB Community diff --git a/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/JAnsiColorConsoleHandler.java b/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/JAnsiColorConsoleHandler.java new file mode 100644 index 0000000..911b27a --- /dev/null +++ b/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/logger/JAnsiColorConsoleHandler.java @@ -0,0 +1,19 @@ +package net.openesb.standalone.logger; + +import java.util.logging.LogRecord; +import org.fusesource.jansi.AnsiConsole; + +/** + * Color Console Handler for jdk: using jansi (http://jansi.fusesource.org/) + * + * @author David BRASSELY (brasseld at gmail.com) + * @author OpenESB Community + */ +public class JAnsiColorConsoleHandler extends BaseColorConsoleHandler { + + @Override + public void publish(LogRecord record) { + AnsiConsole.err.print(logRecordToString(record)); + AnsiConsole.err.flush(); + } +} diff --git a/openesb-standalone-packaging/pom.xml b/openesb-standalone-packaging/pom.xml index f2960ac..7886bd9 100644 --- a/openesb-standalone-packaging/pom.xml +++ b/openesb-standalone-packaging/pom.xml @@ -127,6 +127,13 @@ 1.0 + + + org.fusesource.jansi + jansi + ${jansi.version} + + net.open-esb diff --git a/openesb-standalone-packaging/src/main/assembly/distribution.xml b/openesb-standalone-packaging/src/main/assembly/distribution.xml index e05f4ac..106aa30 100644 --- a/openesb-standalone-packaging/src/main/assembly/distribution.xml +++ b/openesb-standalone-packaging/src/main/assembly/distribution.xml @@ -90,6 +90,7 @@ org.slf4j:slf4j-jdk14 com.google.inject:guice aopalliance:aopalliance + org.fusesource.jansi:jansi lib/ext false diff --git a/openesb-standalone-packaging/src/main/resources/config/logger.properties b/openesb-standalone-packaging/src/main/resources/config/logger.properties index 5ce530c..ef3a765 100644 --- a/openesb-standalone-packaging/src/main/resources/config/logger.properties +++ b/openesb-standalone-packaging/src/main/resources/config/logger.properties @@ -15,8 +15,10 @@ # ------------------------------------------ # The set of handlers to be loaded upon startup. # Comma-separated list of class names. -# (? LogManager docs say no comma here, but JDK example has comma.) -handlers=net.openesb.standalone.logger.FileHandler, net.openesb.standalone.logger.ColorConsoleHandler + +# Note to Windows users : you should use JAnsiColorConsoleHandler instead of +# AnsiColorConsoleHandler to handle properly ansi escape sequences. +handlers=net.openesb.standalone.logger.FileHandler, net.openesb.standalone.logger.AnsiColorConsoleHandler # Default global logging level. # Loggers and Handlers may override this level @@ -25,7 +27,7 @@ handlers=net.openesb.standalone.logger.FileHandler, net.openesb.standalone.logge # Formatters # ----------------------------------------- -# Works only using JDK 7 +# Warning: the foloowing formatter only works using JDK 7 java.util.logging.SimpleFormatter.format=%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS.%1$tL%1$Tz %4$s %5$s%6$s%n # Handlers