日志处理log4j

断点调试和记录日志是作为java程序员必须具备的技能,一些主流框架和技术和互联网技术都有用到日志技术

  1. log4j的特性
    1)线程安全
    2)log4j是经过优化速度的
    3)至此每个记录器输出追加器
    4)支持国际化
    5)基于一个记录器的层次结构
    6)不局限于一组预定义的设备
    7)日志文件可以设置文件在运行时设置
    8)log4j设计从一开始就是处理java异常
    9)log4j有多个级别,通过控制这些级别可以时间将某些不想输出的信息过滤掉
    10)日志输出的格式可以通过拓展Layout类容易的改变
    11)日志输出的目标 , 以及在写入策略可通过实现Appender程序接口改变
    12)log4j会故障停止 , 然而 , 尽管它肯定努力确保传递 , log4j不保证每个日志语句将被传递到目的地

  2. log4j使用案例
    1)创建普通java项目
    2)在src下创建log4j.properties配置文件

    # 设置
    log4j.rootLogger = debug,stdout,D,E
    
    # 输出DEBUG 级别以上的日志到=E://logs/error.log 
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = E://logs/log.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = DEBUG 
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    # 输出ERROR 级别以上的日志到=E://logs/error.log
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File =E://logs/error.log 
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR 
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    注意了:1)本例子中配置的日志信息保存的路径为为E盘的路径,要确保你的电脑中有E盘
    

    3)编写main函数的java类

    logger.info("普通的info信息");
    logger.debug("调试的debug信息");
    logger.error("报错的error信息");
    logger.warn("警告的warning信息");
    
  3. log4j运行原理
    log4j.properties为什么无需在web.xml等配置文件中引入?在这里插入图片描述
    LogManager的静态代码块中会先查找程序中有没有override相关功能,如果没有就查找log4j.xml,如果还没有就查找log4j.properties文件,即当我们引用了org.apache.log4j,配置好log4j.xml或者log4j.properties后,可以不用在配置文件中或者程序中再显示地读取log4j的配置文件,在jvm加载LogManager.class时候会执行静态代码块中的查找代码。

  4. 解读配置文件
    配置文件中的信息:https://www.cnblogs.com/tengqiuyu/p/7535373.html和

http://www.cnblogs.com/ITtangtang/p/3926665.html

猜你喜欢

转载自blog.csdn.net/qq_40836501/article/details/88101125
今日推荐