Dans log4j, existe-t-il un moyen pour que logger.error ("") et logger.debug ("") incluent des dispositions de sortie différentes? Je souhaite que les erreurs incluent les noms de méthodes et les numéros de ligne, ce qui ralentit les performances de l'application.Disposition log4j différente pour le débogage et l'erreur?
EDIT:
Après avoir ajouté apache-log4j-extras, le fichier de configuration suivant fonctionne.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="WARNINGS" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="warnings.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MMM-dd HH:mm:ss} %-5p %c - %m%n%n"/>
</layout>
<filter class="org.apache.log4j.filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="WARN"/>
</filter>
</appender>
<appender name="ERRORS" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="errors.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- %M for method name , %L for line number -->
<param name="ConversionPattern" value="%d{yyyy-MMM-dd HH:mm:ss} %-5p %c %M %L - %m%n%n"/>
</layout>
<filter class="org.apache.log4j.filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="FATAL"/>
</filter>
</appender>
<logger name="com.foo.bar">
<appender-ref ref="WARNINGS"/>
<appender-ref ref="ERRORS"/>
</logger>
</log4j:configuration>
Ce code a été utilisé pour tester
// goes to errors.txt
log.error("error");
//goes to warnings.txt
log.warn("warn");
Dans votre ConversionPattern, vous pouvez utiliser% d {ISO8601} c'est un formateur de temps optimisé que log4j fournit pour des raisons de commodité et de rapidité. – Gandalf
@Gandalf merci. J'essaierai. – sal