log4j笔记

  1. 理解
    按照我的理解log4j分成三部分:
    (a)logger, 负责收集错误信息;

    如:log4j.logger.com=info, Console
    收集com包下错误信息是info以及info级别以上的,以Console(b appender)形式输出, Console的名字随便命名只要和(b)对应上;
    

    (b)appender, 负责把信息输出到哪里去;

    如:log4j.appender.Console=org.apache.log4j.ConsoleAppender
    把信息输出到控制台;
    appender 还有很多种如:
    写入文件: org.apache.log4j.FileAppender
    每天产生一个文件: org.apache.log4j.DailyRollingFileAppender
    写入数据库: org.apache.log4j.jdbc.JDBCAppender 等等;
    

    (c)layout,输出到appender的信息以何种布局显示;

    如:PatternLayout 根据自己配置格式信息
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %l - %m%n
    
    layout的种类:
    org.apache.log4j.HTMLLayout
    org.apache.log4j.PatternLayout
    org.apache.log4j.SimpleLayout
    org.apache.log4j.TTCCLayout
    
  2. 测试

    (a)引入包

    这里写图片描述

    (b)新建一个配置文件log4j.properties,放在classes目录下,配置文件内容:

#rootLogger
log4j.rootLogger=error, Console

#子logger
#只针对com.hateapple.log包下生效
log4j.logger.com.hateapple.log=info, Console
#只针对com.hateapple.servlet包下生效
log4j.logger.com.hateapple.servlet=info, RollingFile

#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %l - %m%n


#RollingFile
log4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingFile.File=e:\bole.log
log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern=%d [%t] %-5p %l - %m%n

(c)测试1

package com.hateapple.log;
import org.apache.log4j.Logger;
public class HelloLog4jConsole {
    private static final Logger log = Logger.getLogger(HelloLog4jConsole.class);
    public static void main(String[] args) {
        log.error("HelloLog4jConsole error log");
          log.warn("HelloLog4jConsole warn log");
          log.info("HelloLog4jConsole info log");
          log.debug("HelloLog4jConsole debug log");
    }
}

结果输出:
这里写图片描述

分析结果
1. 同级别的日志信息输出两条,说明rootLogger也生效了;
2. rootLogger的日志级别是error,打印信息却有warn 和info 级别的,说明日志级别由子logger决定;
3. 查看e盘下是否有bloe.log日志文件,没有说明另外一个子logger没有对当前测试生效;

测试2:去掉rootLogger的Console, 为子loggerlog4j.logger.com.hateapple.log增加RollingFile

#rootLogger
log4j.rootLogger=error

#子logger
#只针对com.hateapple.log包下生效
log4j.logger.com.hateapple.log=info, Console,RollingFile
#只针对com.hateapple.servlet包下生效
log4j.logger.com.hateapple.servlet=info, RollingFile

#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %l - %m%n


#RollingFile
log4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingFile.File=e:\bole.log
log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern=%d [%t] %-5p %l - %m%n

结果输出:
这里写图片描述

分析结果:1.同级别日志不再重复(将rootLogger的Console去掉了),验证了测试1的分析;
2.查看e盘 ,生成了log文件,说明RollingFile配置生效了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值