:
// 输出到项目文件夹下 输出到项目文件夹下 输出到项目文件夹下 输出到项目文件夹下 输出到项目文件夹下 输出到项目文件夹下 输出到项目文件夹下 输出到项目文件夹下 文件中txt 文件中 //////////////////////////////////////////////////// pour plus - voici une erreur // Fatal - voici un certain paquet ///////////////////////////////////////////////////////////////////// pour façon hunnu.sanha.test; import org.apache.log4j.level; import org.apache.log4j.logger; import org.apache.log4j.simplelayout; import org.apache.log4j.fileAppender; classe publique simpandfile {logger statique = logger.getLogger (simpandfile.class); public static void main (String args []) {SimpleLayout Layout = new Simplelayout (); FileAPpender appender = null; essayez {appender = new FileAppender (Layout, "Output1.txt", false); } catch (exception e) {} logger.addapprender (appender); Logger.setLevel ((niveau) niveau.); logger.debug ("voici un certain débogage"); Logger.info ("Voici quelques informations"); Logger.warn ("voici un certain avertissement"); Logger.Error ("voici une erreur"); Logger.fatal ("Voici un peu mortel"); }} // 按格式输出到项目文件夹下 output2.htmlpackage hunnu.sanha.test; import java.io. *; Import org.apache.log4j.level; import org.apache.log4j.logger; import org.apache.log4j.htmllayout; Import Org.apache.log4j.writerAppender; Clasque public htmlandwwer {STatic logger = logger.getLogger (htmlandwrite.class); public static void main (String args []) {htmllayout Layout = new htmllayout (); APPLENDRE APPENSIONNEMENTS SURPRENDRE = NULL; essayez {fileOutputStream output = new FileOutputStream ("output2.html"); appender = new WriterAppender (mise en page, sortie); } catch (exception e) {} logger.addapprender (appender); Logger.setLevel ((niveau) niveau.); logger.debug ("voici un certain débogage"); Logger.info ("Voici quelques informations"); Logger.warn ("voici un certain avertissement"); Logger.Error ("voici une erreur"); Logger.fatal ("Voici un peu mortel"); }} //输出到控制台////////////////////////////////////////////////////////////////////////////////////////////////////////////Milliseconds since Démarrage du programme: 0classname de l'appelant: Hunnu.Sanha.test.ConsandPattDate in iso8601 Format: 2008-07-29 11: 02: 30,578Location of Log Event: Hunnu.sanha.test.consandpatt.main (consannjon hunnu.sanha.test.consandpattdate au format ISO8601: 2008-07-29 11: 02: 30 593LOCATION DE LOG Événement: hunnu.sanha.test.consandpatt.main (consandpatt. hunnu.sanha.test.consandpattdate au format ISO8601: 2008-07-29 11: 02: 30 593 OF LOG Event: Hunnu.sanha.test.consandpatt.main (consandpatt.java:22) Message: voici quelques milliseconds de Warn depuis le programme de départ: 15classname de l'appelant: Hunnu.sanha.test.consandpattdate dans ISO8601 Format: 2008-07-29 11: 02: 30 593 OF LOG Event: Hunnu.sanha.test.consandpatt.main (consanque hunnu.sanha.test.consandpattdate au format ISO8601: 2008-07-29 11: 02: 30 593 OFFORME DE LOG Événement: Hunnu.sanha.test.consandpatt.main (consandpatt.java:24) Fatal ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// / org.apache.log4j.patternlayout; import org.apache.log4j.consoleAPender; public class ConsandPatt {static logger logger = logger.getLogger (consandpatt.class); public static void main (String args []) {// note,% n est newline String Pattern = "millisecondes depuis le début du programme:% R% n"; Pattern + = "ClassName de l'appelant:% C% n"; Pattern + = "Date dans ISO8601 Format:% D {ISO8601}% n"; Pattern + = "Emplacement de l'événement logarithmique:% L% n"; Pattern + = "Message:% m% n% n"; PattemLayout Layout = new PatternLayout (Pattern); ConsoleAPpender appender = new ConsoleAPpender (mise en page); logger.addapprender (appender); Logger.setLevel ((niveau) niveau.); logger.debug ("voici un certain débogage"); Logger.info ("Voici quelques informations"); Logger.warn ("voici un certain avertissement"); Logger.Error ("voici une erreur"); Logger.fatal ("Voici un peu mortel"); }}二、使用配置文件 (都直接放到项目文件夹下 都直接放到项目文件夹下
//xmllog4jconfig.xml<?xml version = "1.0" Encoding = "utf-8"?> <! doctype log4j: System de configuration "log4j.dtd"> <log4j: configuration xmlns: log4j = "http://jakarta"> <param name = "file" value = "indentify-log.txt" /> <param name = "append" value = "false" /> <alout> <param name = "ConversionPattern" value = "% d [% t]% p -% m% n" /> </ Layout> </ appender> <hoot> <priority value = "debug" /> <appen-ref Ref = "Applane" /> priority </ root> </ log4j: configuration> //externalxmltest.java package hunnu.sanha.external; import org.apache.log4j.logger; import org.apache.log4j.xml.domconfigurator; public class externalxmltest {static logger = Logger.getLogger (externalxmltest.class); public static void main (String args []) {DomConfigurator.Configure ("xmllog4jconfig.xml"); logger.debug ("voici un certain débogage"); Logger.info ("Voici quelques informations"); Logger.warn ("voici un certain avertissement"); Logger.Error ("voici une erreur"); Logger.fatal ("Voici un peu mortel"); }} // 结果输出到 endentify-log.txt 文件中 2008-07-29 10: 48: 11,375 [Main] Debug - Voici quelques-uns debug2008-07-29 10: 48: 11,375 [Main] Info - voici quelques info2008-07-29 10: 48: 11,375 [Main] Warn - voici un peu WARN2008-07-19 10: 48: 11,375 [Main] Erreur - Voici une erreur 2008-07-29 10: 48: 11,375 [Main] Fatal - Voici quelques mortels // Plainlog4jConfig.txt # Initialiser Root Logger avec Debug et l'appelez Blahlog4j.rootlogger = Debug, Blah # Ajouter Ad a ConsoleaPender à la logger Blahlog4j.appender.blah = org.apache.log4j.consoleAPpender # set cette mise en page org.apache.log4j.propertyconfigurator; public class externalplatestEst {static logger logger = logger.getLogger (externalPlainTest.class); public static void main (String args []) {PropertyConfigurator.Configure ("Plainlog4jconfig.txt"); logger.debug ("voici un certain débogage"); Logger.info ("Voici quelques informations"); Logger.warn ("voici un certain avertissement"); Logger.Error ("voici une erreur"); Logger.fatal ("Voici un peu mortel"); }} // 结果输出到控制台 Debug - voici quelques debuginfo - voici quelques infoarn - voici quelques warnerror - voici quelques erreurs.:
2.1. 日志信息的优先级
分为 Off 、 Fatal 、 Erreur 、 avertit 、 info 、 débogage 、 tout 或者您定义的级别。
Log4j 建议只使用四个级别 , 优先级从高到低分别是 Erreur 、 avertissant 、 Info 、 Debug 。通过在这里定义的级别 , 您可以控制到应用程序中相应级别的日志信息的开关。
假如在一个级别为 Q 的 Logueur 中发生一个级别为 P 的日志请求 , 如果 P> = Q, 那么请求将被启用。这是 log4j 的核心原则。
比如在这里定义了 Info 级别 , 则应用程序中所有 Débogue 级别的日志信息将不被打印出来;
2.2. 输出源的使用
有选择的能用或者禁用日志请求仅仅是 log4j 的一部分功能。log4j 允许日志请求被输出到多个输出源。用 log4j 的话说 , 一个输出源被称做一个 appender。
Appender包括console(控制台), files(文件), GUI components(图形的组件), remote socket servers(socket 服务), JMS(java信息服务), NT Event Loggers(NT的事件日志), and remote UNIX Syslog daemons(远程UNIX的后台日志服务)。它也可以做到异步记录。
一个 Logueur 可以设置超过一个的 appender。
用 Addaptender 方法添加一个 Appeder 到一个给定的 Logueur 。对于一个给定的 Logueur 它每个生效的日志请求都被转发到该 Logueur 所有的 Applette 上和该 Logueur 的父辈 Logueur 的 Appeder 上。
2.2.1. ConsoleraPender
如果使用 ConsoleAppender , 那么 Log 信息将写到 Console 。效果等同于直接把信息打印到 Système.
2.2.2. FileAppender
使用 fileAppender , 那么 log 信息将写到指定的文件中。这应该是比较经常使用到的情况。
相应地 , 在配置文件中应该指定 log 输出的文件名。如下配置指定了 log 文件名为 dglog.txt
log4j.appender.a2.file = dglog.txt
注意将 A2 替换为具体配置中 appender 的别名。
2.2.3. Dailyrollingapprender
使用 fileAppender 可以将 log 信息输出到文件中 , 但是如果文件太大了读起来就不方便了。这时就可以使用 dailyrollingPender。dailyrollingPender 可以把 log 信息输出到按照日期来区分的文件中。配置文件就会每天产生一个 log 文件 , 每个 log 文件只记录当天的 log : :
log4j.appenden
log4j.appender.a2.file = dglog
log4j.appender.a2.datePattern = '.'
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionPattern =% 5r% -5p% c {2} -% m% n
2.2.4. org.apache.log4j.rollingFileAppender
文件大小到达指定尺寸的时候产生一个新的文件。
log4j.appenden
log4j.appender.r.file = ../logs/dglog.log
# Contrôlez la taille maximale du fichier journal
log4j.appender.r.maxfilesize = 100kb
# Archive Files journaux (un fichier de sauvegarde ici)
log4j.appender.r.maxbackupindex = 1
log4j.appender.r.layout = org.apache.log4j.patternlayout
log4j.appender.r.layout.conversionPattern =% p% t% c -% m% n
这个配置文件指定了输出源 R , 是一个轮转日志文件。最大的文件是 100KB , 当一个日志文件达到最大尺寸时 , log4j 会自动把 Exemple.log 重命名为 dglog.log.1 , 然后重建一个新的 dglog.log 文件 , 依次轮转。
2.2.5. org.apache.log4j.writerAppender
将日志信息以流格式发送到任意指定的地方。
2.3. Disposition 的配置
Disposition 指定了 log 信息输出的样式。
2.3.1. 布局样式
org.apache.log4j.htmllayout (以 html 表格形式布局)) ,
org.apache.log4j.patternlayout (可以灵活地指定布局模式)) ,
org.apache.log4j.simplelayout (包含日志信息的级别和信息字符串)) ,
org.apache.log4j.ttcclayout (包含日志产生的时间、线程、类别等等信息)
2.3.2. 格式
% m 输出代码中指定的消息
% p 输出优先级 , 即 Débogue , info , avertissant , Erreur , fatale
% r 输出自应用启动到输出该 log 信息耗费的毫秒数
% c 输出所属的类目 , 通常就是所在类的全名
% t 输出产生该日志事件的线程名
% N 输出一个回车换行符 , Windows 平台为 "rn" , Unix 平台为 "n"
% d 输出日志时间点的日期或时间 , 默认格式为 ISO8601 , 也可以在其后指定格式 , 比如 :% d {yyy mmm dd hh: mm: ss, sss} , 输出类似 : 2002 年 10月 18日 22: 10: 28,921
% L 输出日志事件的发生位置 , 包括类目名、发生的线程 , 以及在代码中的行数。举例: TestLog4.main (Test Log4.java:10)
2.3.3. 例子
例子 1: 显示日期和 Journal 信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionPattern =% d {yyyy-mm-dd hh: mm: ss, sss}% m% n
:
2002-11-12 11: 49: 42 866 Sélectionner * dans le rôle où 1 = 1 commande par CréationDate Desc
例子 2: 显示日期 显示日期 , log 发生地方和 log 信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionPattern =% d {yyyy-mm-dd hh: mm: ss, sss}% l "#"% m% n
2002-11-12 11: 51: 46,313 cn.net.unet.weboa.system.dao.roledao.select (roledao.java:409) "#"
Sélectionnez * dans le rôle où 1 = 1 commande par CréationDate Desc
例子 3: 显示 显示 log 级别, 时间, 调用方法, log 信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionPattern = [% - 5p]% d {yyy-mm-dd hh: mm: ss, sss}
Méthode:% l% n% m% n
journal 信息:
[Debug] 2002-11-12 12: 00: 57 376
Méthode: cn.net.unet.weboa.system.dao.roledao.select (roledao.java:409)
Sélectionnez * dans le rôle où 1 = 1 commande par CréationDate Desc
2.4. 配置文件的例子:
log4j.rootlogger = débogage
# 将 dao 层 log 记录到 daolog, alllog 中
Log4j.logger.dao = Debug, A2, A4
# 将逻辑层 log 记录到 记录到 记录到 记录到 记录到 记录到 记录到 记录到 记录到 boutique de travail, alllog 中
log4j.logger.businessLog = Debug, A3, A4
# A1-- 打印到屏幕上
log4j.appenden
log4j.appenden
log4j.appenden
# A2-- 打印到文件 Daolog 中 - 专门为 Dao 层服务
log4j.appenden
log4j.appender.a2.file = daolog
log4j.appender.a2.datePattern = '.'
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionPattern = [% - 5p]% d {yyy-mm-dd hh: mm: ss, sss}
Méthode:% l% n% m% n
# A3-- 打印到文件 Businessglog 中 - 专门记录逻辑处理层服务 log 信息
log4j.appenden
log4j.appender.a3
log4j.appender.a3.datePattern = '.'
log4j.appender.a3
log4j.appender.a3
Méthode:% l% n% m% n
# A4-- 打印到文件 alllog 中 - 记录所有 log 信息
log4j.appenden
log4j.appender.a4.file = alllog
log4j.appender.a4.datePattern = '.'
log4j.appenden
log4j.appender.a4.layout.conversionPattern = [% - 5p]% d {yyy-mm-dd hh: mm: ss, sss}
Méthode:% l% n% m% n
以上这篇浅谈在 java 项目中 log4j 的使用就是小编分享给大家的全部内容了 , 希望能给大家一个参考 , 也希望大家多多支持武林网。