一、直接使用:
//输出到项目文件夹下输出1.txt文件中////////////////////////////////////////////////// debug-这是一些debug // info- info- info // warn- warn-在这里是一些warn // warn/warn rorror-这是一些错误// fatal- fatal-这是一些fatal- fatal/fatal/fatal/fatal///////////////////////////////////////局hunnu.sanha.test; import org.apache.log4j.level; import org.apache.log4j.logger; import org.apache.log.simplelayout; import org.apache.log.log.log4j.fileaeappender; public static void main(String args []){simpleLayout布局= new SimpleLayout(); 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(“这里是致命的”); }} //按格式输出到项目文件夹下输出2.htmlpackage hunnu.sanha.test; import java.io。 logger = logger.getLogger(htmlandwrite.class); public static void main(string args []){htmllayout layout = new htmllayout(); writerAppender appender = null;尝试{fileOutputStream output = new fileOutputStream(“ output2.html”); appender = new WriterAppender(布局,输出); } catch(异常E){} logger.addappender(appender); logger.setlevel((级别)级别。); logger.debug(“这里有一些调试”); logger.info(“这里有一些信息”); logger.warn(“这里有些警告”); logger.error(“这是一些错误”); logger.fatal(“这里是致命的”); }}} //输出到控制台////////////////////////////////////////////////////////////////////////////////////////////////////////////Milliseconds since program start: 0Classname of caller: hunnu.sanha.test.ConsandpattDate in ISO8601 format: 2008-07-29 11:02:30,578Location of log event: hunnu.sanha.test.Consandpatt.main(Consandpatt.java:20)Message: Here is some DEBUG Milliseconds since program start: 15Classname of来电者:ISO8601格式:2008-07-29 11:02:30,593 log log event:hunnu.sanha.test.consandpatt.main(ConsandPatt.java:21)消息:呼叫者是callisecons, ISO8601格式:2008-07-29 11:02:02:30,593 log事件的hunnu.sanha.test.consandpattdate in in iso8601格式:hunnu.sanha.test.consandpatt.main(consandpatt.java:22)消息:这是一些WARN MILLISECONDS STROGAND:15CLASSN:15CLESN:15CLESN: ISO8601格式:2008-07-29 11:02:30,593 log事件的hunnu.sanha.test.consandpattdate在ISO8601中: hunnu.sanha.test.consandpattdate in ISO8601格式:2008-07-29 11:02:02:30,593 log log event:hunnu.sanha.test.consandpatt.consandpatt.main(Consandpatt.java:24) fatal //////////////////////////////////////////////////////////////////////////ponge org.apache.log4j.patternlayout; import org.apache.log4j.consoleappender; public类ConsandPatt {static logger logger = logger.getLogger(consandpatt.class); public static void main(string args []){//注意,%n是newline string pattern =“毫秒开始,因为程序开始:%r%n”;模式 +=“呼叫者的className:%c%n”;模式 +=“ ISO8601格式的日期:%d {iso8601}%n”;模式 +=“日志事件的位置:%l%n”;模式 +=“消息:%m%n%n”; pattern layout布局= new pattern layout(staters); consoleappender appender =新的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:configuration xmlns xmlns:log4j =“ log4j =” name =“ file” value =“ indentify-log.txt”/> <param name =“ append” value =“ falese”/> <layout> <param name =“ conversionpattern” value =“%d [%t]%p-%p-%m%n”/> </> </> </> </> </appender> </appender> </appender> <pirstity> <pirstity <pirctity vality vality vality valie valie valit debug =“ debender appender-ref” </root> </log4j:configuration> //externalxmltest.java package hunnu.sanha.sanha.external; import org.apache.log4j.logger; import org.apache.log4j.xml.domconfigurator; 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 - Here is some DEBUG2008-07-29 10:48:11,375 [main] INFO - Here is some INFO2008-07-29 10:48:11,375 [main] WARN - Here is some WARN2008-07-29 10:48:11,375 [主要]错误 - 以下是一些错误2008-07-29 10:48:11,375 [主要]致命 - 这是一些致命的// plainlog4jconfig.txt#初始root lotigger,带有级别debug的初始root loat loat loat with Level debug并称其为blahlog4j.rootlogger = debug = debug = debug = debug# BLAHlog4j.appender.BLAH=org.apache.log4j.ConsoleAppender# set set that layout to be SimpleLayoutlog4j.appender.BLAH.layout=org.apache.log4j.SimpleLayout //Externalplaintest.javapackage hunnu.sanha.external;import org.apache.log4j.Logger;import org.apache.log4j.propertyconfigurator; public class externalPlaintest {static logger logger = logger.getLogger(externalPlaintEct.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。 日志信息的优先级
分为致命,致命错误,警告,信息,debug,
log4j建议只使用四个级别,优先级从高到低分别是优先级从高到低分别是
假如在一个级别为q的logger中发生一个级别为p的日志请求,如果p> = q,那么请求将被启用。这是log4j的核心原则。
比如在这里定义了信息级别,则应用程序中所有debug 级别的日志信息将不被打印出来;
2.2。 输出源的使用
有选择的能用或者禁用日志请求仅仅是log4j的一部分功能。log4j允许日志请求被输出到多个输出源。用log4j的话说,一个输出源被称做一个appender。
(appender包括控制台(控制台),文件(文件),GUI组件(图形的组件),远程套接字服务器(套件(套件服务),JMS(java信息服务),nt事件logggers loggers loggers loggers loggers loggers loggers loggers loggers loggers logge nt的事件日志)
一个logger可以设置超过一个的appender。
用addappender方法添加一个appender到一个给定的logger。对于一个给定的logger它每个生效的日志请求都被转发到该logger所有的appender上和该logger的父辈logger的appender上。
2.2.1。 ConsoleAppender
如果使用consoleappender,那么log信息将写到控制台。效果等同于直接把信息打印到系统。
2.2.2。传话剂
使用fileappender,那么log信息将写到指定的文件中。这应该是比较经常使用到的情况。
相应地,在配置文件中应该指定log输出的文件名。如下配置指定了log文件名为dglog.txt
log4j.appender.a2.file = dglog.txt
注意将a2替换为具体配置中appender的别名。
2.2.3。 Dailyrollingappender
使用fileappender可以将log信息输出到文件中,但是如果文件太大了读起来就不方便了。这时就可以使用dailyrolllingappender。dailyrolllingAppender可以把log log信息输出到按照日期来区分的文件中。配置文件就会每天产生一个log文件
log4j.appender.a2 = org.apache.log4j.dailyrollollingfileappender
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.log文件,依次轮转。,依次轮转。
2.2.5。 org.apache.log4j.writerappender
将日志信息以流格式发送到任意指定的地方。
2.3。布局的配置
布局指定了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输出优先级,即,调试,信息,警告,错误,致命
%r输出自应用启动到输出该log信息耗费的毫秒数
%c输出所属的类目,通常就是所在类的全名
%t输出产生该日志事件的线程名
%n输出一个回车换行符,Windows平台为“ RN”,Unix平台为“ n”
%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d {yyy mmm dd hh:mm:mm:ss,sss},输出类似:2002年10月10日22:10:10:10:28,9211
%l输出日志事件的发生位置,包括类目名、发生的线程
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
打印的信息是:
2002-11-12 11:49:42,866从角色中选择 *,其中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)“#”
从角色中选择 *通过创建的desc从1 = 1顺序
例子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
日志信息:
[调试] 2002-11-12 12:00:57,376
方法:cn.net.unet.weboa.system.dao.roledao.select(roledao.java:409)
从角色中选择 *通过创建的desc从1 = 1顺序
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.dailyrollollingfileappender
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.dailyrollollingfileappender
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.dailyrollollingfileappender
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:mm:ss,sss}
方法:%l%n%m%n
以上这篇浅谈在java项目中log4j的使用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。,也希望大家多多支持武林网。