2017-01-16 1 views
2

Ich habe ein cmd-Linie-Tool, das wir dem Kunden bald bereitstellen werden. Ich habe eine böse StdErr-Nachricht im cmd-Fenster von einem Framework, das ich konsumiere, und ich habe Probleme, diese Nachricht mit Log4J in meine Log-Datei umzuleiten.Log4J: Redirect Stderr Nachricht an die Haupt-Protokolldatei

Hier ist meine Datei log4j.xml:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration debug="false" xmlns:log4j='http://jakarta.apache.org/log4j/'> 

    <appender name="file" class="org.apache.log4j.RollingFileAppender"> 
     <param name="append" value="false" /> 
     <param name="maxFileSize" value="500MB" /> 
     <param name="maxBackupIndex" value="5" /> 
     <param name="file" value="test.log" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> 
     </layout> 
    </appender> 

    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="file" /> 
    </root> 

</log4j:configuration> 

ich um gegoogelt habe und ich kann nicht jemand mit einem ähnlichen Fall zu mir finden.

Ich habe es mit den folgenden Linien umgeleitet, aber ich mag lieber mit log4j umleiten, so ist alles in der gleichen Datei

File file = new File("error.log"); 
FileOutputStream fos = new FileOutputStream(file); 
PrintStream ps = new PrintStream(fos); 
System.setErr(ps); 

Ich kann es mit JBoss oder Tomcat-Einstellungen umleiten, weil ich nicht bin mit ein Container. Es ist ein JAR direkt auf der CMD-Linie.

Hinweis: Ich möchte, dass STDOUT immer noch zum CMD-Fenster geht, da dies das Menüsystem für den Benutzer ist.

Antwort

1

ich diese Frage hier ist die akzeptierte Antwort die ich brauchte: log4j redirect stdout to DailyRollingFileAppender

Stellt sich heraus, ich habe versucht, einen Weg, um herauszufinden, es in XML-Konfigurations zu beheben, wenn in Wirklichkeit soll ich zu versuchen gewesen fix in in code durch umleiten von stdErr mit System.setErr().

Verwandte Themen