Heim  >  Artikel  >  Java  >  Sehr detaillierte Log4j-Konfigurationsschritte

Sehr detaillierte Log4j-Konfigurationsschritte

高洛峰
高洛峰Original
2017-01-18 12:47:251268Durchsuche

1. Konfigurationsdatei
Das Grundformat der Log4J-Konfigurationsdatei ist wie folgt:

#配置根Logger 
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , … 
#配置日志信息输出目的地Appender 
log4j.appender.appenderName = fully.qualified.name.of.appender.class 
  log4j.appender.appenderName.option1 = value1 
  … 
  log4j.appender.appenderName.optionN = valueN 
#配置日志信息的格式(布局) 
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class 
  log4j.appender.appenderName.layout.option1 = value1 
  … 
  log4j.appender.appenderName.layout.optionN = valueN

wobei [Ebene] die Protokollausgabeebene ist, es gibt insgesamt 5 Ebenen:

FATAL 0 
ERROR 3 
WARN 4 
INFO 6 
DEBUG 7

Appender Für das Protokollausgabeziel umfassen die von Log4j bereitgestellten Appender Folgendes:

org.apache.log4j.ConsoleAppender(控制台), 
org.apache.log4j.FileAppender(文件), 
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), 
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), 
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 
Layout:日志输出格式,Log4j提供的layout有以下几种: 
org.apache.log4j.HTMLLayout(以HTML表格形式布局), 
org.apache.log4j.PatternLayout(可以灵活地指定布局模式), 
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), 
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

Druckparameter: Log4J verwendet zum Formatieren ein Druckformat, das der printf-Funktion in der Sprache C ähnelt die Protokollinformationen wie folgt:

  %m 输出代码中指定的消息 
  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
  %r 输出自应用启动到输出该log信息耗费的毫秒数 
  %c 输出所属的类目,通常就是所在类的全名 
  %t 输出产生该日志事件的线程名 
  %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” 
  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921 
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
2. Logger im Code initialisieren:
1) Rufen Sie die Methode BasicConfigurator.configure() im Programm auf: Fügen Sie einen ConsoleAppender zum Root-Logger hinzu und legen Sie das Ausgabeformat fest zu „%-4r [%t] %- bis PatternLayout 5p %c %x - %m%n“, und die Standardebene des Root-Loggers ist Level.DEBUG
2) Die Konfiguration wird in die Datei eingefügt , Übergeben des Dateinamens über die Befehlszeilenparameter und Übergeben von PropertyConfigurator.configure(args [x]) Parsen und Konfigurieren;
3) Die Konfiguration wird in der Datei platziert und der Dateiname und andere Informationen werden durch die Umgebung übergeben Variablen und der Standardinitialisierungsprozess von log4j werden zum Parsen und Konfigurieren verwendet.
4) Die Konfiguration wird in der Datei abgelegt und die Konfiguration wird durch die Anwendungsserverkonfiguration weitergeleitet, die Informationen wie Dateinamen übergibt und ein spezielles Servlet verwendet um die Konfiguration abzuschließen.
3. Legen Sie die Protokollausgabeebenen für verschiedene Appender fest:
Beim Debuggen des Systems achten wir häufig nur auf die Protokollausgabe der Ausnahmeebene, aber normalerweise werden alle Ausgabeebenen in einer Datei abgelegt Level ist BUG! ? Dann geh und finde es langsam.
Zu diesem Zeitpunkt möchten wir möglicherweise die Ausnahmeinformationen separat in eine Datei ausgeben können. Natürlich bietet Log4j bereits eine solche Funktion. Wir müssen lediglich den Schwellenwert des Appenders in der Konfiguration ändern, wie im folgenden Beispiel:

[Konfigurationsdatei]

### set log levels ### 
log4j.rootLogger = debug , stdout , D , E 
### 输出到控制台 ### 
log4j.appender.stdout = org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target = System.out 
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n 
### 输出到日志文件 ### 
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender 
log4j.appender.D.File = logs/log.log 
log4j.appender.D.Append = true 
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志 
log4j.appender.D.layout = org.apache.log4j.PatternLayout 
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n 
### 保存异常信息到单独文件 ### 
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender 
log4j.appender.D.File = logs/error.log ## 异常日志文件名 
log4j.appender.D.Append = true 
log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!! 
log4j.appender.D.layout = org.apache.log4j.PatternLayout 
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n 
[代码中使用] 
public class TestLog4j { 
public static void main(String[] args) { 
PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " ); 
Logger logger = Logger.getLogger(TestLog4j. class ); 
logger.debug( " debug " ); 
logger.error( " error " ); 
} 
}

Ausführen Schauen Sie nach, ob die Ausnahmeinformationen in einer separaten Datei error.log gespeichert sind

Ausführlichere Artikel zu Log4j-Konfigurationsschritten finden Sie auf der chinesischen PHP-Website!
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn