Log4j的原理与使用

来源:互联网 发布:羊绒品牌 知乎 编辑:程序博客网 时间:2024/05/17 22:11

一、Log4j的组成

1. Logger组件(记录器组件负责产生日志)

2. Appender组件(信息通过Appender组件输出到目的地,控制台、文件等)

3. Layout组件(负责格式化输出的日志信息)

二、简单配置log4j.properties

详细配置文档下载地址: http://download.csdn.net/detail/u011631266/6542375

log4j.rootLogger=WARN,INFO,stdout,file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%-5p%d{yyyy-MM-dd(HH:mm:ss)} %c - %m%n

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=F:/ch19.log
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p%d{yyyy-MM-dd(HH:mm:ss)} %c - %m%n

#JDBC,此处创建的记录器相应的类或包下面有打印语句时才能记录日志
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

三、使用Log4j

1. 导入Log4j所需jar包

2. 得到日志记录器,继承于根记录器

    static Logger logger = Logger.getLogger(Hello.class); 

3. 读取配置文件(若log4j.properties放在项目的src下可省略此步)

    String prefix =  getServletContext().getRealPath("/"); //得到上下文路径在服务器上的真实路径

    String file = getInitParameter("log4j-init-file"); //得到web.xml中配置文件的相对路径
    if(file != null)
        {
            PropertyConfigurator.configure(prefix+file); //读取key-value形式的配置文件
        }

    //web.xml中 log4j-init-file 配置

    <servlet>
        <servlet-name>Hello</servlet-name>
        <servlet-class>test.Hello</servlet-class>
        <init-param>
            <param-name>log4j-init-file</param-name>
            <!--<param-value>WEB-INF/log4j.properties</param-value>-->
            <!--<param-value>WEB-INF/jdbc.properties</param-value>-->
            <param-value>WEB-INF/log4j.xml</param-value>
        </init-param>
    </servlet>

4. 插入记录日志的语句

    //级别有DEBUG、INFO、WARN、ERROR、FATAL

    logger.info("main");

    logger.error(e.getMessage(),e);

原创粉丝点击