一、所需的jar包(http://download.csdn.net/detail/huangzebiao007/6729991)
二、配置log4j
1、建立一个log4j.properties文件放在src目录下,只有这么做,java虚拟机才会加载得到该配置文件,如果不是放在该src目录下,则需要用PropertyConfigurator.configure("E:/study/log4j/log4j.properties");加载.properties文件
2、配置log4j.properties
(1)log4j.rootLogger = [ level ] , 日志信息输出地1名, 日志信息输出地2名
level:日志的级别,指定这条日志信息的重要性。
DEBUG < INFO <WARN <ERROR四种,分别对应Logger类的四种方法
debug(Object message ) ;
info(Object message ) ;
warn(Object message ) ;
error(Object message ) ;
如果设置级别为INFO,则优先级大于等于INFO级别(如:INFO、WARN、ERROR)的日志信息将可以被输出,
小于该级别的如:DEBUG将不会被输出
(2)配置log输出目的地(一般用的是前两种)
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
(3)log信息的格式
org.apache.log4j.HTMLLayout(HTML表格形式)
org.apache.log4j.SimpleLayout(简单格式的日志,只包括日志信息的级别和指定的信息字符串 ,如:DEBUG - Hello)
org.apache.log4j.TTCCLayout(日志的格式包括日志产生的时间、线程、类别等等信息)
org.apache.log4j.PatternLayout(灵活地自定义日志格式)
当使用org.apache.log4j.PatternLayout来自定义信息格式时,可以使用
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p -%m%n 来格式化信息
%c 输出所属类的全名,可写为 %c{Num} ,Num类名输出的范围 如:"com.sun.aaa.classB", %C{2}将使日志输出输出范围为:aaa.classB
%d 输出日志时间其格式为 可指定格式 如 %d{HH:mm:ss}等
%l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
%n 换行符
%m 输出代码指定信息,如info(“message”),输出message
%p 输出日志的优先级,即 FATAL ,ERROR 等
%r 输出从启动到显示该条日志信息所耗费的时间(毫秒数)
%t 输出产生该日志事件的线程名
三、示例
public class B {
private static final Logger LOG = Logger.getLogger(B.class);
public static void main(String[] args) {
LOG.info("hzbhzbhzb");
}
}
log4j.properties文件内容如下:
log4j.rootCategory=INFO,A1,R
#Console config
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
#File config
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%t] [%c] [%p] - %m%n
log4j.appender.R.File=E://log/hzb.log
log4j.appender.R.DatePattern='_'yyyy-MM-dd'.log'
控制台的日志信息如下:
2013-12-17 17:55:41,593 [com.qc.event.B]-[INFO] hzbhzbhzb
E盘下log目录下的hzb.log文件内容如下:
2013-12-17 17:34:50,921 [main] [com.qc.event.B] [INFO] - hzbhzbhzb