2010-12-11 3 views
2

i ont commencé à apprendre quelque chose log4j que jusqu'à présent son est ici bien travailler le code du fichier log4j.propertyQuestion sur Log4jAppender

# Set root logger level to DEBUG and its only appender to A1. 
log4j.rootLogger=DEBUG, A1,xml 



# A1 is set to be a ConsoleAppender. 
log4j.appender.A1=org.apache.log4j.ConsoleAppender 
# A1 uses PatternLayout. 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 
# ${applicationRoot}/logs/xml.log 
log4j.appender.xml=org.apache.log4j.RollingFileAppender 
log4j.appender.xml.File=G:/TESTGEN/logs/xmlimpex.log 
log4j.appender.xml.MaxFileSize=2MB 
log4j.appender.xml.MaxBackupIndex=2 
log4j.appender.xml.layout = org.apache.log4j.PatternLayout 
log4j.appender.xml.layout.ConversionPattern=%p %t %c - %m%n 

et son impression parfaitement bien travailler sur la console comme diagraphie à la fichier.Je me demande est-il possible de faire quelque chose comme suit

je veux que je devrais être capable de tout se connecter sur la console ce que ce fichier log4j fait mais en même temps je veux que dans le fichier journal que j'ai configuré en utilisant RollingFileAppender devrait consigner les entrées seulement pour l'avertissement et les erreurs.

S'il vous plaît me suggérer comment je peux le faire

Merci à l'avance Umesh

Répondre

1
log4j.rootLogger=DEBUG,A1 
log4j.newlogger=WARN, XML 

Log4j fonctionne de cette façon: Vous pouvez créer plusieurs enregistreurs qui s'inscrivent dans un hiearchy où l'enregistreur racine est toujours en haut. Les enregistreurs peuvent hériter des niveaux et des appenders (si l'indicateur d'additivité est activé) des enregistreurs parents.

Dans l'exemple que je vous ai donné, le nouveau journal que vous avez créé est déclenché au niveau WARN. Il a comme appenders XML mais aussi A1 (dont il a hérité de l'enregistreur racine).

Notez que si nous n'avions pas défini le niveau de newLogger, il aurait hérité du niveau DEBUG. Les hiérarchies dans log4j fonctionnent comme dans les paquets java (en utilisant des points) et s'appuient sur les noms des enregistreurs. L'enregistreur X est le parent de l'enregistreur X.Y qui est le parent de l'enregistreur X.Y.Z. L'enregistreur X est toujours l'enfant de l'enregistreur racine.

Vous pouvez en lire plus à ce sujet dans le Log4j introduction

0

Dans la documentation de Log4net il est dit quelque part que vous pouvez définir les niveaux pour être traité de la appender.