Log4j日志工具实践
来源:互联网 发布:黑色沙漠男忍捏脸数据 编辑:程序博客网 时间:2024/04/30 01:44
Log4J是Apache的一个开放源代码的项目,是目前用的最多的日志控件。通过使用Log4J,程序员可以控制日志信息输送的目的地,包括控制台,文件,GUI组件和NT事件记录器,也可以控制每一条日志的输出格式,或通过定义每一条日志信息的级别,更加细致地控制日志的生成过程。
日志分为下面6个级别,越向下面等级越低:
FATAL
ERROR
WARN
INFO
DEBUG
ERROR
WARN
INFO
DEBUG
TRACE
日志的主要架构如下:
Appender 为日志输出目的地,Log4j提供常用的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)Layout:日志输出格式,Log4j提供常用的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
%m 输出代码中指定的消息 %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL %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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )下面开始敲程序实践:
第一步:加入下面的几个包
最下面一个是mysql数据库的连接jar,如果不用数据库,那么也没有必要加进来,commons-logging是Apache commons库类中的一员,提供一些通用的功能,如:commons-fileupload,commons-httpclient,commons-io,commons-codec等。
commons-logging 能够自动选择使用Log4j还是JDK自带的Logging,但是它不依赖这两者。
第二步:在src的根目录下面建一个文件log4j.properties。
log4j.rootLogger=DEBUG, A1 #grade of error,output to A1.#注意:Log4j的日志配置,如:输出到什么地方,输出级别,输出的时候附加什么信息,输出的格式,等等都配置在log4j.properties.#output to consolelog4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%C]-[%p] %m%n第三步:新建测试类进行测试:
package com.zjca.util;import org.apache.log4j.Logger;public class Log4jTest {public static Logger log=Logger.getLogger(Log4jTest.class);public static void main(String[] args) {// TODO Auto-generated method stublog.trace("hehe trace");log.debug("hehe debug");log.info("hehe info");log.warn("hehe warn");log.error("hehe error");log.fatal("hehe fatal");try{String s=null;s.length();}catch(Exception e){log.trace("trace exception..",e);log.debug("debug exception..",e);log.info("info exception..",e);log.warn("warn exception..",e);log.error("error exception..",e);log.fatal("fatal exception..",e);}}}输出结果为:
0 0
- Log4j日志工具实践
- log4j - 日志输出工具
- Log4j日志工具类
- 日志工具Log4j
- Log4j日志切割实践篇
- Log4J日志工具的配置
- 使用日志记录工具log4j
- 日志工具 Log4j控件初识
- 日志工具——log4j
- log4j日志工具的使用
- 开发日志记录工具log4j
- FLume收集log4j日志配置实践
- 使用高效的日志工具—Log4J
- 使用高效的日志工具—Log4J
- 使用高效的日志工具—Log4J
- 使用高效的日志工具—Log4J
- 使用高效的日志工具—Log4J
- Log4J 做一个简单的日志工具
- 第6章 子函数
- php检测邮箱密码
- JavaEE之--------利用过滤器实现用户自动登录,安全登录,取消自动登录黑用户禁止登录
- 源码篇——AsyncTask机制
- Session处理
- Log4j日志工具实践
- bzoj2463 [中山市选2009]谁能赢呢?
- iOS block简单使用
- quartz个别任务不执行处理
- 探索大型网站技术架构(一)
- hadoop下的Kmeans算法实现一
- iOS应用的crash日志的分析基础
- 关于Autodesk View and Data API的一些问题
- php解析数据格式转化为js数组