: :
// 输出到项目文件夹下 output1.txt 文件中 ///////////////////////////////////////////////////////////////////////////////////////////////////// // هنا بعض debug // info - إليك بعض المعلومات // warn - هنا بعض الحذر // خطأ - هنا خطأ // unnu.sanha.test ؛ استيراد org.apache.log4j.level ؛ استيراد org.apache.log4j.logger ؛ استيراد org.apache.log4j.simplelayout ؛ استيراد org.apache.log4j.filePender ؛ public class simpandfile public static void main (String args []) {simplayout layout = new simplayout () ؛ fileAppender Appender = null ؛ حاول {appender = new fileAppender (التصميم ، "output1.txt" ، false) ؛ } catch (استثناء e) {} logger.addappender (appender) ؛ logger.setlevel ((المستوى) مستوى.) ؛ logger.debug ("هنا بعض الأخطاء") ؛ logger.info ("هنا بعض المعلومات") ؛ logger.warn ("هنا بعض تحذير") ؛ logger.error ("هنا بعض الأخطاء") ؛ logger.fatal ("هنا بعض قاتلة") ؛ }} // 按格式输出到项目文件夹下 output2.htmlpackage hunnu.sanha.test ؛ import java.io.*؛ import org.apache.log4j.level ؛ import org.apache.log4j.logger ؛ import org.apache.log4j.htMllayout ؛ logger = logger.getLogger (htmlandwrite.class) ؛ public static void main (string args []) {htmllayout layout = new htmllayout () ؛ الكاتب appender = null ؛ حاول {fileOtputStream Output = new FileOutputStream ("Output2.html") ؛ appender = new constrappender (التخطيط ، الإخراج) ؛ } catch (استثناء e) {} logger.addappender (appender) ؛ logger.setlevel ((المستوى) مستوى.) ؛ logger.debug ("هنا بعض الأخطاء") ؛ logger.info ("هنا بعض المعلومات") ؛ logger.warn ("هنا بعض تحذير") ؛ logger.error ("هنا بعض الأخطاء") ؛ logger.fatal ("هنا بعض قاتلة") ؛ }} //输出到控制台////////////////////////////////////////////////////////////////////////////////////////////////////////////Milliseconds since بدء البرنامج: 0className of Caller: Hunnu.sanha.test.consandpattdate في ISO8601 التنسيق: 2008-07-29 11: 02: 30،578Location من الحدث السجل: Hunnu.sanha.test.consandpatt.main (consandpatt.java:20) Hunnu.sanha.test.consandpattdate في ISO8601 التنسيق: 2008-07-29 11: 02: 30،593Location من الحدث السجل: hunnu.sanha.test.consandpatt.main (consandpatt.java:21) الرسالة: هنا بعض المعلومات milliseconds منذ البداية: 15. Hunnu.sanha.test.consandpattdate في ISO8601 التنسيق: 2008-07-29 11: 02: 30،593LOCATION OF LOOD EVENT hunnu.sanha.test.consandpattdate في ISO8601 التنسيق: 2008-07-29 11: 02: 30،593Location من الحدث السجل: Hunnu.sanha.test.consandpatt.main (consandpatt.java:23) الرسالة: هنا بعض الخطأ milliseconds: Hunnu.sanha.test.consandpattdate في ISO8601 التنسيق: 2008-07-29 11: 02: 30،593location من سجل الحدث: Hunnu.sanha.test.consandpatt.main (consandpatt.java:24) الرسالة: هنا بعض fatal ////////////////////////////////////////////////////////////////////////////////////////////////////////////// org.apache.log4j.patternlayout ؛ import org.apache.log4j.consolePender ؛ consandpatt {static logger = logger.getLogger (consandpatt.class) ؛ public static void main (string args []) {// note ، ٪ n هو newline string pattern = "milliseconds منذ بدء البرنامج: ٪ r ٪ n" ؛ Pattern += "className of Caller: ٪ C ٪ n" ؛ Pattern += "Date in ISO8601 Format: ٪ d {ISO8601} ٪ n" ؛ pattern += "موقع الحدث السجل: ٪ l ٪ n" ؛ Pattern += "Message: ٪ m ٪ n ٪ n" ؛ PatternLayout Layout = new PatternLayout (pattern) ؛ ConsomeAppender Appender = New Consolappender (Layout) ؛ logger.addappender (appender) ؛ logger.setlevel ((المستوى) مستوى.) ؛ logger.debug ("هنا بعض الأخطاء") ؛ logger.info ("هنا بعض المعلومات") ؛ logger.warn ("هنا بعض تحذير") ؛ logger.error ("هنا بعض الأخطاء") ؛ logger.fatal ("هنا بعض قاتلة") ؛ }}二、使用配置文件 (都直接放到项目文件夹下)
//xmllog4jconfig.xml<؟xml version = "1.0" isding = "utf-8"؟> <! doctype log4j: configuration system "log4j.dtd"> <log4j: applender xmlns: log4j = "http://jakarta.apach.org/ name = "file" value = "indentify-log.txt"/> <param name = "append" value = "false"/> <layout> <param name = "conversionPattern" value = "٪ d [٪ t] ٪ p-٪ m ٪ </roun> </drog4j: configuration> //externalxmltest.java package hunnu.sanha.extern public static void main (String args []) {domConfigurator.Configure ("xmllog4jconfig.xml") ؛ logger.debug ("هنا بعض الأخطاء") ؛ logger.info ("هنا بعض المعلومات") ؛ logger.warn ("هنا بعض تحذير") ؛ logger.error ("هنا بعض الأخطاء") ؛ logger.fatal ("هنا بعض قاتلة") ؛ }} // 结果输出到 indentify-log.txt 文件中 2008-07-29 10: 48: 11،375 [main] debug-هنا بعض debug2008-07-29 10: 48: 11،375 [main] info-هنا بعض info2008-07-29 10: 48: 11،375 [main] 10: 48: 11،375 [Main] خطأ - هنا بعض Error2008-07-29 10: 48: 11،375 [Main] Fatal - إليك بعض القاتل // plainlog4jconfig.txt# logger initialise مع Debug و Call it blahlog4j.rotlogger = debug ، blah# blahlog4j.appender.blah = org.apache.log4j.consoleppender# set set that Layout to to simplayoutlog4j.appender.blah.layout = org.apache.log4j.simplelayout //externalplaintest.javapackage hunnu.sanha.extern ؛ org.apache.log4j.propertyConfigurator ؛ الطبقة العامة externplaintest {static logger logger = logger.getLogger (externalblainest.class) ؛ public static void main (String args []) {propertyConfigurator.Configure ("plainlog4jconfig.txt") ؛ logger.debug ("هنا بعض الأخطاء") ؛ logger.info ("هنا بعض المعلومات") ؛ logger.warn ("هنا بعض تحذير") ؛ logger.error ("هنا بعض الأخطاء") ؛ logger.fatal ("هنا بعض قاتلة") ؛ }} // 结果输出到控制台 debug - هنا بعض debuginfo - هنا بعض infoWarn - هنا بعض warnerror - هنا بعض الأخطاء - هنا بعض قاتلة: :
2.1. 日志信息的优先级
分为 OFF 、 خطأ 、 خطأ 、 تحذير 、 المعلومات 、 تصحيح 、 كل 或者您定义的级别。
log4j 建议只使用四个级别 , 优先级从高到低分别是 خطأ 、 تحذير 、 معلومات 、 debug 。通过在这里定义的级别 , 您可以控制到应用程序中相应级别的日志信息的开关。
假如在一个级别为 Q 的 logger 中发生一个级别为 p 的日志请求 , 如果 p> = q ، 那么请求将被启用。这是 log4j 的核心原则。
比如在这里定义了 معلومات 级别 , 则应用程序中所有 debug 级别的日志信息将不被打印出来;
2.2. 输出源的使用
有选择的能用或者禁用日志请求仅仅是 log4j 的一部分功能。log4j 允许日志请求被输出到多个输出源。用 log4j 的话说 , 一个输出源被称做一个 一个输出源被称做一个
Appender 包括 Console (控制台)) ، الملفات (文件) ، مكونات واجهة المستخدم الرسومية (图形的组件 图形的组件 ، خوادم المقبس عن بعد (المقبس 服务 服务 ، JMS (java 信息服务) ،
一个 المسجل 可以设置超过一个的 الملحق。
用 AddAppender 方法添加一个 Appender 到一个给定的 Logger 。对于一个给定的 Logger 它每个生效的日志请求都被转发到该 Logger 所有的 Appender 上和该 Logger 的父辈 Logger 的 Appedender 上。
2.2.1. Consolappender
如果使用 consolappender , 那么 log 信息将写到 console 。效果等同于直接把信息打印到 system.out 上了。
2.2.2. FileAppender
使用 FilePender , 那么 log 信息将写到指定的文件中。这应该是比较经常使用到的情况。
相应地 , 在配置文件中应该指定 log 输出的文件名。如下配置指定了 log 文件名为 dglog.txt
log4j.appender.a2.file = dglog.txt
注意将 A2 替换为具体配置中 ompender 的别名。
2.2.3. dailyrollingappender
使用 FileAppender 可以将 log 信息输出到文件中 , 但是如果文件太大了读起来就不方便了。这时就可以使用 dailyrollingappender。dailyrollingappender 可以把 log 信息输出到按照日期来区分的文件中。配置文件就会每天产生一个 log 文件 , 每个 log 文件只记录当天的 log 信息 :
log4j.appender.a2 = org.apache.log4j.dailyrollingfileappender
log4j.appender.a2.file = dglog
log4j.appender.a2.datepattern = '.' yyyy-mm-dd
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.appender.r = org.apache.log4j.rollingfileappender
log4j.appender.r.file = ../logs/dglog.log
# التحكم في الحد الأقصى لحجم ملف السجل
log4j.appender.r.maxfilesize = 100kb
# ملفات سجل الأرشيف (ملف احتياطي واحد هنا)
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 会自动把 example.log 重命名为 dglog.log.1 , 然后重建一个新的 dglog.log 文件 , 依次轮转。
2.2.5. org.apache.log4j.writerappender
将日志信息以流格式发送到任意指定的地方。
2.3. التصميم 的配置
تخطيط 指定了 سجل 信息输出的样式。
2.3.1. 布局样式
org.apache.log4j.htmllayout (以 html 表格形式布局) ,
org.apache.log4j.patternlayout (可以灵活地指定布局模式) ,
org.apache.log4j.simplelayout (包含日志信息的级别和信息字符串) ,
org.apache.log4j.ttcclayout (包含日志产生的时间、线程、类别等等信息)
2.3.2. 格式
٪ م 输出代码中指定的消息
٪ p 输出优先级 , 即 debug , معلومات , تحذير , خطأ , قاتلة
٪ r 输出自应用启动到输出该 log 信息耗费的毫秒数
٪ c 输出所属的类目 , 通常就是所在类的全名
٪ ر
٪ 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 (اختبار log4.java:10)
2.3.3. 例子
例子 1 : 显示日期和 سجل 信息
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 SELECT * من الدور الذي يكون فيه 1 = 1 ترتيبًا عن طريق إنشاء 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) "#"
حدد * من الدور حيث 1 = 1 ترتيب عن طريق إنشاء desc
例子 3 : 显示 log 级别 ، 时间 ، 调用方法 ، log 信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern = [٪-5p] ٪ d {yyyy-mm-dd hh: mm: ss ، sss}
الطريقة: ٪ l ٪ n ٪ m ٪ n
سجل 信息:
[Debug] 2002-11-12 12: 00: 57،376
الطريقة: cn.net.unet.weboa.system.dao.roledao.select (Roledao.java:409)
حدد * من الدور حيث 1 = 1 ترتيب عن طريق إنشاء desc
2.4. 配置文件的例子:
log4j.Rootlogger = تصحيح
#将 dao 层 log 记录到 daolog ، alllog 中
log4j.logger.dao = Debug ، A2 ، A4
#将逻辑层 log 记录到 BusinessLog ، alllog 中
log4j.logger.businesslog = debug ، a3 ، a4
#A1-- 打印到屏幕上
log4j.appender.a1 = org.apache.log4j.consoleppender
log4j.appender.a1.layout = org.apache.log4j.patternlayout
log4j.appender.a1.layout.conversionpattern = ٪ - 5p [٪ t] ٪ 37c ٪ 3x - ٪ m ٪ n
#a2-- 打印到文件 daolog 中-专门为 dao 层服务
log4j.appender.a2 = org.apache.log4j.dailyrollingfileappender
log4j.appender.a2.file = daolog
log4j.appender.a2.datepattern = '.' yyyy-mm-dd
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern = [٪-5p] ٪ d {yyyy-mm-dd hh: mm: ss ، sss}
الطريقة: ٪ l ٪ n ٪ m ٪ n
#a3-- 打印到文件 businesslog 中-专门记录逻辑处理层服务 log 信息
log4j.appender.a3 = org.apache.log4j.dailyrollingfileappender
log4j.appender.a3.file = BusinessLog
log4j.appender.a3.datepattern = '.' yyyy-mm-dd
log4j.appender.a3.layout = org.apache.log4j.patternlayout
log4j.appender.a3.layout.conversionpattern = [٪-5p] ٪ d {yyyy-mm-dd hh: mm: ss ، sss}
الطريقة: ٪ l ٪ n ٪ m ٪ n
#A4-- 打印到文件 alllog 中-记录所有 log 信息
log4j.appender.a4 = org.apache.log4j.dailyrollingfileappender
log4j.appender.a4.file = alllog
log4j.appender.a4.datepattern = '.' yyyy-mm-dd
log4j.appender.a4.layout = org.apache.log4j.patternlayout
log4j.appender.a4.layout.conversionpattern = [٪-5p] ٪ d {yyyy-mm-dd hh: mm: ss ، sss}
الطريقة: ٪ l ٪ n ٪ m ٪ n
以上这篇浅谈在 Java 项目中 log4j 的使用就是小编分享给大家的全部内容了 , 希望能给大家一个参考 , 也希望大家多多支持武林网。