Maison > Java > javaDidacticiel > le corps du texte

Étapes de configuration Log4j très détaillées

高洛峰
Libérer: 2017-01-18 12:47:25
original
1314 Les gens l'ont consulté

1. Fichier de configuration
Le format de base du fichier de configuration Log4J est le suivant :

#配置根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
Copier après la connexion

où [niveau] est le niveau de sortie du journal, il y a 5 niveaux au total :

FATAL 0 
ERROR 3 
WARN 4 
INFO 6 
DEBUG 7
Copier après la connexion

Appender Pour la destination de sortie du journal, les appenders fournis par Log4j incluent les éléments suivants :

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(包含日志产生的时间、线程、类别等等信息)
Copier après la connexion

Paramètres d'impression : Log4J utilise un format d'impression similaire à la fonction printf en langage C pour formater les informations du journal, comme suit :

  %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 )
Copier après la connexion
2. Initialisez Logger dans le code :
1) Appelez la méthode BasicConfigurator.configure() dans le programme : ajoutez un ConsoleAppender au logger racine et définissez le format de sortie. à "%-4r [%t] %- through PatternLayout 5p %c %x - %m%n", et le niveau par défaut de l'enregistreur racine est Level.DEBUG
2) La configuration est placée dans le fichier. , en passant le nom du fichier via les paramètres de ligne de commande et en passant PropertyConfigurator.configure(args [x]) Parse and configure
3) La configuration est placée dans le fichier, le nom du fichier et d'autres informations sont transmises via des variables d'environnement. , et le processus d'initialisation par défaut de log4j est utilisé pour analyser et configurer ;
4) La configuration est placée dans le fichier et la configuration est transmise. La configuration du serveur d'application transmet des informations telles que les noms de fichiers et utilise un servlet spécial pour terminer la configuration.
3. Définir les niveaux de sortie du journal pour différents appenders :
Lors du débogage du système, nous prêtons souvent attention uniquement à la sortie du journal au niveau des exceptions, mais généralement tous les niveaux de sortie sont placés dans un seul fichier si le journal est la sortie. le niveau est BUG ! ? Alors va le chercher lentement.
À ce stade, nous souhaiterons peut-être pouvoir afficher les informations d'exception dans un fichier séparément. Bien entendu, Log4j propose déjà une telle fonction. Il suffit de modifier le seuil de l'Appender dans la configuration pour y parvenir, comme dans l'exemple suivant :

[Fichier de configuration]

### 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 " ); 
} 
}
Copier après la connexion

Exécutez Jetez un œil et voyez si les informations d'exception sont enregistrées dans un fichier séparé error.log

Pour des articles plus détaillés sur les étapes de configuration de Log4j, veuillez faire attention au site Web PHP chinois !
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!