一、直接使用:
// 输出到项目文件夹下 output1.txt 文件中/////////////////////////////////////////////////////////////////////////////////////////////////////////////-phวore ato fatal ///////////////////////////////////////////////////////////////////////////////////////////TH simpandfile {logger logger แบบคงที่ = logger.getLogger (simpandfile.class); โมฆะคงที่สาธารณะหลัก (String args []) {simpleLayout layout = new SimpleLayout (); fileAppender appender = null; ลอง {appender = new FileAppender (เลย์เอาต์, "output1.txt", false); } catch (exception e) {} logger.addappender (Appender); logger.setLevel (ระดับ (ระดับ)); logger.debug ("นี่คือการดีบัก"); logger.info ("นี่คือข้อมูลบางส่วน"); logger.warn ("นี่คือคำเตือน"); logger.error ("นี่คือข้อผิดพลาดบางอย่าง"); logger.fatal ("นี่คือบางส่วนที่ร้ายแรง"); }} // 按格式输出到项目文件夹下 output2.htmlpackage hunnu.sanha.test; นำเข้า java.io.*; นำเข้า org.apache.log4j.level; นำเข้า org.apache.log4j.logger; นำเข้า org.logray.log.log4j.htmllayout; logger logger = logger.getLogger (htmlandwrite.class); โมฆะคงที่สาธารณะหลัก (String args []) {htmllayout layout = new htmllayout (); Writerappender Appender = Null; ลอง {fileOutputStream output = ใหม่ fileOutputStream ("output2.html"); Appender = ใหม่ WriterAppender (เลย์เอาต์, เอาต์พุต); } catch (exception e) {} logger.addappender (Appender); logger.setLevel (ระดับ (ระดับ)); logger.debug ("นี่คือการดีบัก"); logger.info ("นี่คือข้อมูลบางส่วน"); logger.warn ("นี่คือคำเตือน"); logger.error ("นี่คือข้อผิดพลาดบางอย่าง"); logger.fatal ("นี่คือบางส่วนที่ร้ายแรง"); - // 输出到控制台///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Eลาag-////////////////////////กนซัน//////////////////////////////////////-1/////// โปรแกรมเริ่มต้น: 0className of Caller: hunnu.sanha.test.consandpattdate ในรูปแบบ iso8601: 2008-07-29 11: 02: 30,578location ของเหตุการณ์บันทึก: hunnu.sanha.test.consandpatt.main hunnu.sanha.test.consandpattdate ในรูปแบบ iso8601: 2008-07-29 11: 02: 30,593location ของเหตุการณ์บันทึก: hunnu.sanha.test.consandpatt.main hunnu.sanha.test.consandpattdate ในรูปแบบ iso8601: 2008-07-29 11: 02: 30,593location ของเหตุการณ์บันทึก: hunnu.sanha.test.consandpatt.main hunnu.sanha.test.consandpattdate ในรูปแบบ iso8601: 2008-07-29 11: 02: 30,593location ของเหตุการณ์บันทึก: hunnu.sanha.test.consandpatt.main hunnu.sanha.test.consandpattdate ในรูปแบบ iso8601: 2008-07-29 11: 02: 30,593location ของเหตุการณ์บันทึก: hunnu.sanha.test.consandpatt.main (consandpatt.java:24) ข้อความ: นี่คือบางส่วน FATAL///////////////////////////////////////////////////////package hunnu.sanha.test;import org.apache.log4j.Level;import org.apache.log4j.Logger;import org.apache.log4j.patternlayout; นำเข้า org.apache.log4j.consoleAppender; คลาสสาธารณะ consandpatt {logger logger แบบคงที่ = logger.getLogger (consandpatt.class); โมฆะคงที่สาธารณะหลัก (สตริง args []) {// note, %n เป็นรูปแบบสตริงใหม่ = "มิลลิวินาทีตั้งแต่โปรแกรมเริ่มต้น: %r %n"; รูปแบบ += "classname ของผู้โทร: %c %n"; รูปแบบ += "วันที่ในรูปแบบ iso8601: %d {iso8601} %n"; รูปแบบ += "ตำแหน่งของเหตุการณ์บันทึก: %l %n"; รูปแบบ += "ข้อความ: %m %n %n"; รูปแบบ layout = new PatternLayout (รูปแบบ); ConsoleAppender Appender = New ConsoleAppender (เลย์เอาต์); logger.addappender (Appender); logger.setLevel (ระดับ (ระดับ)); logger.debug ("นี่คือการดีบัก"); logger.info ("นี่คือข้อมูลบางส่วน"); logger.warn ("นี่คือคำเตือน"); logger.error ("นี่คือข้อผิดพลาดบางอย่าง"); logger.fatal ("นี่คือบางส่วนที่ร้ายแรง"); -二、使用配置文件(都直接放到项目文件夹下)
//xmllog4jconfig.xml<?xml เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?> <! DOCTYPE log4J: ระบบการกำหนดค่า "log4j.dtd"> <log4j: การกำหนดค่า xmlns: log4j = "http://jakarta.apache.org name = "file" value = "Indentify-log.txt"/> <param name = "ผนวก" value = "false"/> <ynateout> <param name = "conversionPattern" value = "%d [%t]%p-%m%n"/> </layout </root> </log4j: การกำหนดค่า> //externalxmltest.java แพ็คเกจ hunnu.sanha.external; นำเข้า org.apache.log4j.logger; นำเข้า org.apache.log4j.xml.domconfigurator; โมฆะคงที่สาธารณะหลัก (สตริง 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] ข้อมูล-นี่คือข้อมูลบางส่วน 25008-07-29 10: 48: 11,375 10: 48: 11,375 [หลัก] ข้อผิดพลาด - นี่คือข้อผิดพลาดบางอย่าง 25008-07-29 10: 48: 11,375 [หลัก] ร้ายแรง - นี่คือบางส่วนที่ร้ายแรง // plainlog4jconfig.txt# เริ่มต้น logger ระดับเริ่มต้น blahlog4j.appender.blah = org.apache.log4j.consoleAppender# ตั้งค่าเลย์เอาต์นั้นเป็น SimpleLayoutlog4j.appender.blah.layout = org.apache.log4j.simplelayout //externalplaintest.javapackage Hunnu. org.apache.log4j.propertyConfigurator; คลาสสาธารณะ externalPlaintest {logger logger แบบคงที่ = logger.getLogger (externalPlaintest.class); โมฆะคงที่สาธารณะหลัก (สตริง args []) {propertyconfigurator.configure ("plainlog4jconfig.txt"); logger.debug ("นี่คือการดีบัก"); logger.info ("นี่คือข้อมูลบางส่วน"); logger.warn ("นี่คือคำเตือน"); logger.error ("นี่คือข้อผิดพลาดบางอย่าง"); logger.fatal ("นี่คือบางส่วนที่ร้ายแรง"); }} // 结果输出到控制台 debug - นี่คือ Debuginfo - นี่คือ Infowarn บางส่วน - นี่คือ Warnerror - นี่คือข้อผิดพลาดบางอย่าง - นี่คือบางส่วนที่ร้ายแรง附加:
2.1. 日志信息的优先级
分为ปิด、 ข้อผิดพลาด、 ข้อผิดพลาด、 เตือนข้อมูล、 การดีบัก、 ทั้งหมด或者您定义的级别。
log4j 建议只使用四个级别, 优先级从高到低分别是ข้อผิดพลาด、 เตือน、 ข้อมูล、 debug 。通过在这里定义的级别, 您可以控制到应用程序中相应级别的日志信息的开关。您可以控制到应用程序中相应级别的日志信息的开关。
假如在一个级别为 q 的 logger 中发生一个级别为 p 的日志请求, 如果 p> = q, 那么请求将被启用。这是 log4j 的核心原则。
比如在这里定义了ข้อมูล级别, 则应用程序中所有 debug 级别的日志信息将不被打印出来;
2.2. 输出源的使用
有选择的能用或者禁用日志请求仅仅是 log4j 的一部分功能。log4j允许日志请求被输出到多个输出源。用 log4j 的话说, 一个输出源被称做一个 Appender 。
Appender (คอนโซล (คอนโซล (控制台, ไฟล์ (), ส่วนประกอบ GUI (), เซิร์ฟเวอร์ซ็อกเก็ตระยะไกล (ซ็อกเก็ต (服务), JMS (Java (信息服务), NT Event Loggers (NT 的事件日志)
一个 Logger 可以设置超过一个的 Appender 。
用 AddAppender 方法添加一个 Appender 到一个给定的 Logger 。对于一个给定的 Logger 它每个生效的日志请求都被转发到该 Logger 所有的 Appender 上和该 Logger 的父辈 Logger 的 Appender 上。
2.2.1. consoleappender
如果使用 ConsoleAppender, 那么 log 信息将写到คอนโซล。效果等同于直接把信息打印到 System.out 上了。
2.2.2. FileAppender
使用 FileAppender, 那么บันทึก信息将写到指定的文件中。这应该是比较经常使用到的情况。
相应地, 在配置文件中应该指定บันทึก输出的文件名。如下配置指定了 log 文件名为 dglog.txt
log4j.appender.a2.file = dglog.txt
注意将 A2 替换为具体配置中 Appender 的别名。
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 n
2.2.4. org.apache.log4j.rollingFilePender
文件大小到达指定尺寸的时候产生一个新的文件。
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 会自动把ตัวอย่างล็อก重命名为 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. 格式
%M 输出代码中指定的消息
%P 输出优先级, 即การดีบัก, ข้อมูล, เตือน, ข้อผิดพลาด, ถึงตาย
%r 输出自应用启动到输出该บันทึก信息耗费的毫秒数
%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 (ทดสอบ log4.java:10)
2.3.3. 例子
例子 1: 显示日期和 log 信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionPattern =%d {yyyy-mm-dd hh: mm: ss, sss}%m%n n%n
打印的信息是:
2002-11-12 11: 49: 42,866 Select * จากบทบาทที่ 1 = 1 คำสั่งซื้อโดย Creatidate 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 n
2002-11-12 11: 51: 46,313 cn.net.unet.webo.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 = debug
#将 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.consoleAppender
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 的使用就是小编分享给大家的全部内容了, 希望能给大家一个参考, 也希望大家多多支持武林网。也希望大家多多支持武林网。