Logback: verwenden Sie farbige Ausgabe nur bei der Anmeldung zu einem echten terminal

In meinem Logback-Konfiguration habe ich die folgenden Zeilen:

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  <encoder>
    <pattern>%highlight(...) %msg%n</pattern>
  </encoder>
  <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    <level>WARN</level>
  </filter>
</appender>

Dies macht die Warnungen und Fehler zeigen sich in terminal, gefärbt, während die Haupt-log-Datei enthält viel mehr Informationen, z.B. INFO-und DEBUG-levels.

In der Regel funktioniert dies gut. Aber wenn ich es starten von Emacs oder anderen "nicht wirklich eine "terminal" - Programm, das färben Befehle zeigen, als ASCII-escape-Sequenzen, z.B. ^[[31m für die Warnung hervorheben. Ist es irgendwie möglich zu machen Logback nur mit ANSI färben, wenn eine Verbindung zu einem realen terminal?

InformationsquelleAutor doublep | 2015-06-25
Schreibe einen Kommentar