Log4j日志技术精品PPT课件
- 格式:ppt
- 大小:309.00 KB
- 文档页数:15
Java标准日志工具Log4j的使用1(入门)Log4j 是事实上的 Java 标准日志工具。
会不会用 Log4j 在一定程度上可以说是衡量一个开发人员是否是一位合格的 Java 程序员的标准。
如果你是一名 Java 程序员,如果你还不会用 Log4j,那你真的很有必要读一下这篇文章了。
很多朋友反映想写程序日志,但是却不知道怎么把日志写到日志文件里,而且 Java 这方面的资料似乎不多。
如《如何写log4j.xml日志配置文件》所述。
本文详细介绍了如何在项目中使用 Log4j 的步骤,并附加了一个例子性质的代码。
Why Log4j?有的朋友喜欢用System.out.println(String msg); 语句来调试代码。
这个确实是一个很好的调试工具。
但是随着项目的结束,或者问题的解决,这些语句需要我们一个个地揪出来手工删除?《如何一次性删除所有的system.out.println语句》,这个帖子里的这位网友就遇到了这样一个问题。
全部都删除干净,问题又来了:如果以后又出现问题了该怎么办呢?难道再次添加,问题解决后再次查找到删除?使用Log4j 就可以很好地解决上面的问题和矛盾。
Log4j 有一个日志级别,用来控制是否进行日志记录。
其由低到高的级别如下:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF将日志进行分级的目的就是在于可以灵活配置。
比如说如果日志级别限定于DEBUG,那么包括DEBUG 在内的,INFO、WARN、ERROR、FATAL、OFF 都会进行日志记录;而如果级别定义为INFO,那么INFO 以下的级别,像DEBUG 的日志就不会记录。
比如如下代码:view plaincopy to clipboardprint?1.Logger log = LogManager.getLogger(HelloWorld.class);("info通过 class 对象来获取 logger 对象");3.log.debug("debug通过 class 对象来获取 logger 对象");4.log.warn("warn通过 class 对象来获取 logger 对象");如果你的 Log4j 定义为输出到控制台,日志级别定义为 INFO,那么执行到上面语句块,控制台会输出以下日志信息:18:07:37,237 INFOHelloWorld:32 - info通过 class 对象来获取logger 对象18:07:37,245 WARNHelloWorld:34 - warn通过 class 对象来获取 logger 对象具体范例作者已经上传至附件,有兴趣的朋友可以去下载下来看看。
log4j的几种用法
Log4j是一个流行的Java日志框架,它提供了多种用法来帮助开发人员记录和管理应用程序的日志信息。
以下是几种常见的
Log4j用法:
1. 配置日志级别,Log4j允许开发人员根据不同的需求配置日志级别,包括DEBUG、INFO、WARN、ERROR等级别。
通过配置,可以控制哪些日志消息会被记录下来,从而方便开发人员调试和排查问题。
2. 输出日志到不同的目的地,Log4j支持将日志消息输出到不同的目的地,比如控制台、文件、数据库等。
开发人员可以根据需求配置日志输出的目的地,以便对日志进行集中管理和分析。
3. 日志格式化,Log4j允许开发人员自定义日志消息的格式,包括时间戳、日志级别、类名、方法名等信息。
通过格式化,可以使日志消息更易读,方便开发人员理解和分析。
4. 日志过滤,Log4j提供了过滤器功能,可以根据特定的条件过滤掉不需要记录的日志消息,从而减少日志的冗余和提高日志记
录的效率。
5. 动态配置,Log4j支持动态配置,开发人员可以在应用程序运行时动态修改日志配置,比如调整日志级别、更改日志输出目的地等,而不需要重启应用程序。
总之,Log4j提供了丰富的功能和灵活的配置选项,可以帮助开发人员高效地记录和管理应用程序的日志信息。
通过合理地使用Log4j,开发人员可以更好地了解应用程序的运行状况,及时发现和解决问题。
JAVA中使⽤log4j及slf4j进⾏⽇志输出的⽅法详解 JAVA中输出⽇志⽐较常⽤的是log4j,这⾥讲下log4j的配置和使⽤⽅法,以及slf4j的使⽤⽅法。
⼀、下载log4j的架包,并导⼊项⽬中,如下:⼆、创建log4j.properties配置⽂件1、log4j配置⽂件的位置:(1)如果是java project项⽬,则在项⽬的根⽬录下创建log4j.properties⽽不是在src⽬录下。
(2)如果是java web项⽬,则在src⽬录下创建log4j.properties配置⽂件,因为这个时候tomcat会去默认的加载这个配置⽂件,⽽不需要我们⼿动的加载log4j的配置⽂件。
log4j.properties配置内容如下:1 log4j.rootLogger=info,logTest2 log4j.appender.logTest=org.apache.log4j.DailyRollingFileAppender3 log4j.appender.logTest.File=/logs/LogTest/logTest.log4 log4j.appender.logTest.DatePattern='.'yyyy-MM-dd'.log'5 yout=org.apache.log4j.PatternLayout6 yout.ConversionPattern=[LogTestInfo] [%d][%c][%-5p]%m%n2、log4j配置项的说明:(1)第⼀⾏中rootLogger配置的是整个项⽬的⽇志输出,也可以只针对某⼀个模块进⾏⽇志输出,⽐如第⼀⾏配置成.logTest.project=info,logTest,则⽇志只输出项⽬路径com/logTest/project下的。
info为⽇志级别,可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。
Log4JLOG4J简介在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
log4j的作用一、什么是log4jLog4j 是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
二、日志简介日志指在程序中插入语句以提供调试信息。
使用日志能够监视程序的执行。
例如,用户利用日志可以获得关于应用程序故障的完整信息。
用户可以将调试语句(如System.out.println)插入到程序中以获得详细的调试信息。
三、项目中为什么要用log4j大家在编程时经常不可避免地要使用到一些日志操作,比如开发阶段的调试信息、运行时的日志记录及审计。
调查显示,日志代码占代码总量的4%。
通常大家可以简单地使用System.out.println()语句输出日志信息,但是往往会有一些判断,比如:if (someCondition){System.out.println("some information.");}这些判断造成正常的程序逻辑中混杂了大量的输出语句。
异常处理及日志log4j1.1 异常处理基本知识Java中异常处理程序中错误分类:语法错误、运行时错误、逻辑错误什么是异常:异常是指程序运行过程中出现的一些错误称为异常。
Java 提供了一系列用于处理异常的类,所有异常类的父类:ng.Exception;能够处理所有的运行时异常。
Java中常用的异常类:Throwable——可以抛出的RuntimeException——系统异常(如内存溢出、磁盘已满等),一般无法修复Form atException——参数格式化异常(如将12.5转换成整数)IndexOutOfException——数组下标越界异常NullPointerException——空指针异常(访问空对象)异常处理:为了提高程序运行的健壮性,在程序出现异常时需要处理,称异常捕捉。
1. 捕捉异常,如何捕捉异常?捕捉异常使用try…catch语句块:Try/catch*Try/catch*/finally?Try/finally?2. 自定义异常、抛出异常在用户在输入数据违反逻辑约束的时候需要抛出异常信息时,可以采用自定义异常。
(例如:年龄为负数)声明某个方法可能抛出某种异常1.2 项目中的异常方式一、异常处理的普通原则i.把整个系统分为两大类异常:一类,业务异常,写自定义异常来代表;一类,程序异常,直接采用Exception(或者另外一个自定义异常)来代表。
项目要定义一个根自定义异常类,表示本项目中所有的异常;ii.在业务层、持久层把两类异常都抛出(不能把异常吃掉了);iii.在控制层捕捉异常,并分类处理(分类catch业务异常和系统异常,对业务异常,把异常信息取出,转发到提示页面显示给用户;对系统异常,用日志系统写入日志,便于以后维护解决Bug);iv.定义一个通用的显示提示信息的视图(可用用Jsp或者JS窗口)实现。
二、显示错误的方式i.直接在输入页面,显示错误优点:明确、详细,客户操作方便。
log4j日志使用案例log4j是一个功能强大的Java日志框架,被广泛应用于各种Java应用程序中。
它提供了灵活的配置选项和丰富的日志记录功能,可以帮助开发人员更好地理解和调试应用程序。
下面是十个使用log4j 的案例,以便更好地理解其用法和功能。
1. 日志级别控制log4j提供了不同的日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL。
开发人员可以根据需要设置适当的日志级别,以过滤掉不需要的日志信息。
2. 日志输出格式log4j允许开发人员定义日志输出的格式,包括时间戳、日志级别、类名、方法名等信息。
通过自定义输出格式,开发人员可以更好地理解日志信息。
3. 日志文件分割log4j支持将日志信息分割到不同的文件中,以便更好地组织和管理日志。
可以根据日期、文件大小等条件进行日志文件的分割。
4. 日志滚动log4j支持日志滚动,即在达到一定条件后,将当前日志文件重命名并创建一个新的日志文件。
这样可以避免日志文件过大,提高日志的可读性和管理性。
5. 异常堆栈跟踪log4j可以自动记录异常堆栈跟踪信息,包括异常的类型、消息和堆栈轨迹。
这对于调试和排查错误非常有帮助。
6. 日志过滤器log4j提供了日志过滤器,可以根据特定的条件对日志进行过滤。
开发人员可以根据需要定义不同的过滤器,以便只记录感兴趣的日志信息。
7. 日志传递log4j支持将日志信息传递给其他系统,如数据库、消息队列等。
这样可以方便地对日志信息进行分析和监控。
8. 日志性能优化log4j提供了一些性能优化选项,如异步日志记录和缓冲区。
这些选项可以提高日志记录的效率,减少对应用程序性能的影响。
9. 日志配置文件log4j使用一个配置文件来定义日志的行为,包括日志级别、输出目标、格式等。
开发人员可以根据需要自定义配置文件,以满足特定的日志需求。
10. 日志动态调整log4j允许在运行时动态调整日志的行为,包括日志级别、输出目标等。
浅谈JAVA中的日志文件log4的使用方法:log4是具有日志记录功能,主要通过一个配置文件来对程序进行监测有两种配置方式:一种程序配置,一种文件配置有三个主要单元要了解,Logger,appender,layout.logger是进行记录的主要类,appender是记录的方式,layout是记录的格式logger七种日志级别:debug,info,warn,error,fatal,all,off最常用的应该是debug()和info();而warn()、error()、fatal()仅在相应事件发生后才使用appender主要分三类,终端输出,文件输出,流输出ConsoleAppenderFileAppenderWriterAppenderlayout也分三类:简单格式,html格式,匹配格式SimpleLayoutHTMLLayoutPatternLayout输出简写:(用在PatternLayout)%m 输出代码中指定的消息%p 输出优先级%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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
一般使用了它就不需使用%c了[按照下面步骤来写吧!就可以得到我们所想要的日志文件哦!][按照顺序就可以将日志文件读出来了!]作用实例:程序配置一般过程:1.得到特定名称的logger2.得到其中一个layout3.根据layout得到appender4.logger添加appender5.logger设置级别6.logger输出有级别的日志信息程序:Logger logger = Logger.getLogger(Test.class.getName()) //取得loggerSimpleLayout simpleLayut = new SimpleLayout() //取得layoutFileAppender fa = new FileAppender(simpleLayout,"test.log") //取得ppenderlogger.addAppender(fa) //添加appenderlogger.set((Level)Level.DEBUG) //设置级别logger.debug("hihihihih") //记录信息文件配置过程:1.得到特定名称的logger2.加载配置文件 (配置文件做了2-5的工作)3.logger输出有级别的日志信息文件配置程序:1.Logger logger = Logger.getLogger(Test.class.getName()) //取得logger2.使用下面的配置加载3.输出信息文件配置分properties,xml读取properties:PropertyConfigurator.configure("logTest.properties");读取xml:DOMConfigurator.configure("src/logTest.xml");告别System.out.print()—J2SDK1.4新增Java日志框架(一)作为一名Java程序员,最熟悉的、使用最多的调用恐怕莫过于System.out.print(“…”)。
一、按照一定时间产生日志文件,配置文件如下:# Setrootlogge r lev el to ERRO R and itsonlyappen der t o A1.log4j.ro otLog ger=E RROR,R# R is setto be a Da ilyRo lling FileA ppend er. log4j.appe nder.R=org.apac he.lo g4j.D ailyR ollin gFile Appen der log4j.app ender.R.Fi le=ba ckup.log log4j.appe nder.R.Dat ePatt ern = '.'y yyy-M M-ddlog4j.app ender.R.la yout=org.a pache.log4j.Pat ternL ayoutlog4j.ap pende r.R.l ayout.Conv ersio nPatt ern=%-d{yy yy-MM-dd H H:mm:ss} [%c]-[%p] %m%n 以上配置是每天产生一个备份文件。
其中备份文件的名字叫bac kup.l og。
具体的效果是这样:当天的日志信息记录在b ackup.log文件中,前一天的记录在名称为b ackup.log.yyyy-mm-dd的文件中。
类似的,如果需要每月产生一个文件可以修改上面的配置:将l og4j.appen der.R.Date Patte rn ='.'yy yy-MM-dd 改为l og4j.appen der.R.Date Patte rn ='.'yy yy-MM二、根据日志文件大小自动产生新日志文件配置文件内容如下:# Se t roo t log ger l evelto ER ROR a nd it s onl y app ender to A1.l og4j.rootL ogger=ERRO R,R # Ris se t tobe aRolli ngFil eAppe nder.log4j.ap pende r.R=o rg.ap ache.log4j.Roll ingFi leApp enderlo g4j.a ppend er.R.File=backu p.log#lo g4j.a ppend er.R.MaxFi leSiz e=100KB# Kee p one back up fi lel og4j.appen der.R.MaxB ackup Index=1l og4j.appen der.yo ut=or g.apa che.l og4j.Patte rnLay out log4j.appe ndery out.C onver sionP atter n=%-d{yyyy-MM-d d HH:mm:ss} [%c]-[%p] %m%n其中:#日志文件的大小log4j.appe nder.R.Max FileS ize=100KB# 保存一个备份文件lo g4j.a ppend er.R.MaxBa ckupI ndex=1 。
文档编号:SINOSOFT-001 Log4j使用说明文档中科软科技股份有限公司寿险事业部2009年01月目录1Log4j简介 (3)1.1简介 (3)2原理说明 (3)2.1记录器Logger (3)2.2打印方法和级别 (4)3配置方法 (5)4配置文件说明 (7)5Log4j配置详解 (9)5.1定义配置文件 (9)5.2格式化日志信息 (10)1Log4j简介1.1 简介我们在编程时经常不可避免地要使用到一些日志操作,比如开发阶段的调试信息、运行时的日志记录及审计。
调查显示,日志代码占代码总量的4%。
通常大家可以简单地使用System.out.println()语句输出日志信息,但是在发布时,通常不想在正式的版本中打印这些开发时的调试信息,于是又要手工地把这些语句删除,所以大量的这样的System.out.println()调试语句会带来麻烦。
Log4j是Apache软件基金会Jakarta项目下的一个子项目,是用Java编写的优秀日志工具包。
通过Log4j可以在不修改代码的情况下,方便、灵活地控制任意粒度的日志信息的开启或关闭,然后使用定制的格式,把日志信息输出到一个或多个需要的地方。
并且,Log4j 还有一条平滑的学习曲线,在三分钟内就可学会它的简单使用。
随着使用深入,你会发现Log4J功能的强大,几乎可以满足日志方面的所有需要。
2原理说明2.1 记录器LoggerLogger类是在log4j1.2以后才有的,以前是用Category类来实现现在的Logger类的功能的。
从API可知,Logger类是Category类的子类。
Logger类的代码如下:package org.apache.log4j;public class Logger{// 创建和取回方法:public static Logger getRootLogger();public static Logger getLogger(String name);public static Logger getLogger(Class class1);// 打印方法:public void debug(Object message);public void info(Object message);public void warn(Object message);public void error(Object message);public void fatal(Object message);// 常用打印方法:public void log(Level l, Object message);}2.2 打印方法和级别Log4j中的日志级别分为五种:DEBUG、INFO、WARN、ERROR和FATAL,这五种级别从左到右级别依次增加。