Ich benutze Apache log4j. Ich möchte 2 Appender hinzufügen. einer für irgendeinen Zweck und der andere für andere. Der Log-Inhalt wird nicht an beide Appender gesendet. Ich habe 2 Appender file1 und file2. dann Logger für Datei1 druckt den Datensatz in Datei1.log. andLogger für Datei2 druckt den Datensatz in Datei2.log.Log4j mehrere Appender unabhängig
Antwort
können Sie diesen Schnipsel Code verwenden in 2-Datei zu protokollieren:
log4j.rootLogger=INFO
log4j.appender.debugLog=org.apache.log4j.FileAppender
log4j.appender.debugLog.File=logs/debug.log
....
log4j.appender.reportsLog=org.apache.log4j.FileAppender
log4j.appender.reportsLog.File=logs/reports.log
....
log4j.category.debugLogger=TRACE, debugLog
log4j.additivity.debugLogger=false
log4j.category.reportsLogger=DEBUG, reportsLog
log4j.additivity.reportsLogger=false
Und diese verwenden, wenn Sie anrufen müssen log:
static final Logger debugLog = Logger.getLogger("debugLogger");
static final Logger resultLog = Logger.getLogger("reportsLogger");
Auch wenn Sie bereits log haben und nicht wollen ändere die Log-Init. Log4j unterstützt Sie bei der Festlegung des Pakets oder des vollständigen Qualitätsmusters.
log4j.rootLogger=DEBUG, CONSOLE
# Each package has different appender name
log4j.logger.com.mycorp.project.first=DEBUG, FIRST
log4j.logger.com.mycorp.project.second=DEBUG, SECOND
log4j.appender.FIRST=org.apache.log4j.RollingFileAppender
log4j.appender.FIRST.File=./first.log
log4j.appender.FIRST.layout=org.apache.log4j.PatternLayout
log4j.appender.SECOND=org.apache.log4j.RollingFileAppender
log4j.appender.SECOND.File=./second.log
log4j.appender.SECOND.layout=org.apache.log4j.PatternLayout
ist es möglich, dass auf demselben Paket/java-Datei, geht das Info-Log auf file1 und das Fehlerprotokoll auf Datei 2? – Ankit
Zwei Appen wie unten erstellen:
public static final Logger loggerOne= LoggerFactory.getLogger("com.mylogger.loggerOne");
public static final Logger loggerTwo= LoggerFactory.getLogger("com.mylogger.loggerTwo");
konfigurieren Dann Datei Ihre Log4j.properties wie unten:
log4j.rootLogger=INFO,file ,console
log4j.logger.com.mylogger.loggerOne=INFO,firstLog
log4j.appender.firstLog.File=C:/Imran/logs/firstLog.log
log4j.appender.firstLog.DatePattern='.'yyyy-MM-dd
log4j.appender.firstLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.firstLog.layout=org.apache.log4j.PatternLayout
log4j.appender.firstLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -%m%n
log4j.logger.com.mylogger.loggerTwo=INFO,secondLog
log4j.appender.secondLog.File=C:/Imran/logs/secondLog.log
log4j.appender.secondLog.DatePattern='.'yyyy-MM-dd
log4j.appender.secondLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.secondLog.layout=org.apache.log4j.PatternLayout
log4j.appender.secondLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -%m%n
Verwenden loggerOne.info() und loggerTwo.info() in Sie Code zum Drucken in der Datei firstLog.log bzw. secondLog.log.
Mein Problem ist gelöst Danke, lieber !!! –
überprüfen Sie diese http://stackoverflow.com/questions/9652032/how-can-i-create-2-separate-log-files-with-one-log4j-config-file – Shettyh