Wie nutzt man Log4j schreiben/erfassen von stdout und stderr in eine Datei und mit Windows und Tomcat 5.5 (Java)?

Ich bin mit Windows 2008 R2 und Apache Tomcat 5.5, für Ihre Informationen.

STDOUT und STDERR automatisch protokolliert über Apache-Tomcat-Eigenschaften über die Registerkarte "Protokollierung" - > Redirect Umleiten von Stdout und Stderror Textfelder.

Aber ich will Steuern dies über log4j.

Ich versuche zu nutzen ConsoleAppender und die TimeAndSizeRollingAppender Klasse rollover, was normalerweise gesteuert werden, die von Apache Tomcat angeborene Protokollierung.

Grundsätzlich, jedoch Tomcat-Umleitungen von stdout und stderr in eine Datei, ich möchte das gleiche zu tun, mit log4j und die log4j.Eigenschaften Datei.

Ich habe einige Graben auf dieser Website und andere, wie dieses hier ( umleiten von stdout log4j zu DailyRollingFileAppender) und diese ( http://sysgears.com/articles/how-to-redirect-stdout-and-stderr-writing-to-a-log4j-appender#comment-749), aber habe ich ein paar grundlegende Fragen:

  1. Wie kann ich kompilieren einer dieser Klassen? Was sollte der classpath? Ich habe versucht, kompilieren Sie die Klasse von der sysgears link, aber es zurückgegeben, 7 Fehler, wie z.B. nicht in der Lage zu finden, symbol der Klasse Logger und symbol-Klasse Ausgabestrom.

  2. Nach dem kompilieren, speziell aus dem sysgears link, wie kann ich mit der Klasse? Es besagt, um die Klasse zu verwenden, schreiben Sie einfach:

    System.setErr(new PrintStream(new LoggingOutputStream(
    System.err, Logger.getLogger("outLog"), Ebene.FEHLER)));

Toll, aber wo Schreibe ich das? In einer separaten Datei? Tomcat Eigenschaften?

Ich würde jede Hilfe zu schätzen wissen.

Danken Ihnen sehr für Ihre Zeit.

Update:

Hier ist mein voller log4j.Eigenschaften Datei:

log4j.rootLogger=INFO, CATALINA, LOCALHOST, MANAGER, HOST-MANAGER, ADMIN, CONSOLE

# Define all the appenders
log4j.appender.CATALINA=org.apache.log4j.appender.TimeAndSizeRollingAppender
log4j.appender.CATALINA.file=D:/Program Files (x86)/Apache Software Foundation/Tomcat-      5.5.28/logs/catalina.log
log4j.appender.CATALINA.Threshold=DEBUG
log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.CATALINA.layout=org.apache.log4j.PatternLayout
log4j.appender.CATALINA.MaxFileSize=20KB
log4j.appender.CATALINA.DateRollEnforced=true
log4j.appender.CATALINA.MaxRollFileCount=100
log4j.appender.CATALINA.ScavengeInterval=-1
log4j.appender.CATALINA.BufferedIO=false
log4j.appender.CATALINA.CompressionAlgorithm=ZIP
log4j.appender.CATALINA.layout.conversionPattern = %-5p %-23d{ISO8601} [%t] %x: %c{1} - %m%n

log4j.appender.LOCALHOST=org.apache.log4j.appender.TimeAndSizeRollingAppender
log4j.appender.LOCALHOST.file=D:/Program Files (x86)/Apache Software Foundation/Tomcat-5.5.28/logs/localhost.log
log4j.appender.LOCALHOST.Threshold=DEBUG
log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.LOCALHOST.layout=org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.MaxFileSize=20KB
log4j.appender.LOCALHOST.DateRollEnforced=true
log4j.appender.LOCALHOST.MaxRollFileCount=100
log4j.appender.LOCALHOST.ScavengeInterval=-1
log4j.appender.LOCALHOST.BufferedIO=false
log4j.appender.LOCALHOST.CompressionAlgorithm=ZIP
log4j.appender.LOCALHOST.layout.conversionPattern = %-5p %-23d{ISO8601} [%t] %x: %c{1} - %m%n

log4j.appender.MANAGER=org.apache.log4j.appender.TimeAndSizeRollingAppender
log4j.appender.MANAGER.file=D:/Program Files (x86)/Apache Software Foundation/Tomcat-5.5.28/logs/manager.log
log4j.appender.MANAGER.Threshold=DEBUG
log4j.appender.MANAGER.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.MANAGER.layout=org.apache.log4j.PatternLayout
log4j.appender.MANAGER.MaxFileSize=20KB
log4j.appender.MANAGER.DateRollEnforced=true
log4j.appender.MANAGER.MaxRollFileCount=100
log4j.appender.MANAGER.ScavengeInterval=-1
log4j.appender.MANAGER.BufferedIO=false
log4j.appender.MANAGER.CompressionAlgorithm=ZIP
log4j.appender.MANAGER.layout.conversionPattern = %-5p %-23d{ISO8601} [%t] %x: %c{1} - %m%n

log4j.appender.HOST-MANAGER=org.apache.log4j.appender.TimeAndSizeRollingAppender
log4j.appender.HOST-MANAGER.file=D:/Program Files (x86)/Apache Software Foundation/Tomcat-5.5.28/logs/host-manager.log
log4j.appender.HOST-MANAGER.Threshold=DEBUG
log4j.appender.HOST-MANAGER.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.HOST-MANAGER.layout=org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.MaxFileSize=20KB
log4j.appender.HOST-MANAGER.DateRollEnforced=true
log4j.appender.HOST-MANAGER.MaxRollFileCount=100
log4j.appender.HOST-MANAGER.ScavengeInterval=-1
log4j.appender.HOST-MANAGER.BufferedIO=false
log4j.appender.HOST-MANAGER.CompressionAlgorithm=ZIP
log4j.appender.HOST-MANAGER.layout.conversionPattern = %-5p %-23d{ISO8601} [%t] %x: %c{1} - %m%n

log4j.appender.ADMIN=org.apache.log4j.appender.TimeAndSizeRollingAppender
log4j.appender.ADMIN.file=D:/Program Files (x86)/Apache Software Foundation/Tomcat-5.5.28/logs/admin.log
log4j.appender.ADMIN.Threshold=DEBUG
log4j.appender.ADMIN.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.ADMIN.layout=org.apache.log4j.PatternLayout
log4j.appender.ADMIN.MaxFileSize=20KB
log4j.appender.ADMIN.DateRollEnforced=true
log4j.appender.ADMIN.MaxRollFileCount=100
log4j.appender.ADMIN.ScavengeInterval=-1
log4j.appender.ADMIN.BufferedIO=false
log4j.appender.ADMIN.CompressionAlgorithm=ZIP
log4j.appender.ADMIN.layout.conversionPattern = %-5p %-23d{ISO8601} [%t] %x: %c{1} - %m%n

# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=\
INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=\
INFO, HOST-MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin]=\
INFO, ADMIN
  • Nur um zu validieren, mein Verständnis von der Frage haben Sie bereits konfiguriert Log4J mit Tomcat, wie dies in der Dokumentation (tomcat.apache.org/tomcat-5.5-doc/logging.html). Es ist nur so, dass man nicht immer von STDOUT und STDERR in die logs, richtig?
  • Ja, das ist richtig. Ich habe meine volle log4j.Eigenschaften Datei in meinem ursprünglichen post. Ich möchte nur log von STDOUT und STDERR zu log-Dateien mittels log4j, jedoch getan werden kann. Danke.
InformationsquelleAutor user717236 | 2011-04-20
Schreibe einen Kommentar