Java进阶学习——log4j的学习和使用

简介Loj4j

Log4j的组成

Log4j主要由三大组组件构成:

  • Logger:

    • 负责生成日志,并能够对日志信息进行分类筛选,通俗的讲就是决定什么日志信息应该被输出,什么日志信息应该被忽略
  • Appender:
    • 定义了日志信息输出的目的地,指定日志信息应该被输出到什么地方,这些地方可以是控制台、文件或网络设备等。
  • Layout:
    • 指定日志信息的输出格式

说明:

  一个Logger可以有多个Appender,这意味着日志信息可以被输出到多个设备上,并且每个Appender都对应一种Layout,Layout决定了信息的输出格式。

定义配置文件

  要在应用程序中使用Log4j,首先要在一个配置文件中配置Log4j的各个组件,然后就可以在程序中通过Log4jAPI操作日志。

  Log4j支持编程方式、XML文件、属性文件对组件进行配置,我们在此处使用属性文件进行配置:

log4j.rootLogger = DEBUG,rootAppender,FileAppender
#rootLogger是所有Logger组件的祖先
log4j.logger.MyLogger =DEBUG,rootAppender,FileAppender
#自定义的Logger组件

#配置Appender
log4j.appender.rootAppender = org.apache.log4j.ConsoleAppender
log4j.appender.FileAppender = org.apache.log4j.FileAppender

log4j.appender.DailyRollingFileAppender = org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingFileAppender = org.apache.log4j.RollingFileAppender
log4j.appender.WriterAppender = org.apache.log4j.WriterAppender

#配置FileAppender的文件保存位置
log4j.appender.FileAppender.File=log.txt

#配置Layout组件
log4j.appender.rootAppender.layout = org.apache.log4j.SimpleLayout
log4j.appender.FileAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.FileAppender.layout.ConversionPattern = %t %p - %m%n

在程序中使用Log4j

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Main {
    //获得RootLogger
    static Logger logger = Logger.getRootLogger();
    public static void main(String[] args) {
        //BasicConfigurator.configure(); 使用默认的配置信息配置Log4j环境
        //使用属性文件配置Log4j环境
        PropertyConfigurator.configure(Main.class.getResource("log4j.properties"));
        //Logger的五种输出级别日志
        logger.fatal("致命错误级别日志");
        logger.error("错误级别日志");
        logger.warn("警告级别日志");
        logger.info("提醒级别日志");
        logger.debug("调试级别日志");
    }
}

  

最新文章

  1. 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器
  2. spring InitializingBean接口
  3. BC之Run
  4. 在当前iframe中, 获取Iframe的id
  5. Solr Schema.xml和solrconfig.xml分析(转)
  6. 【转】使用autolayout常见错误
  7. 硬盘IO,SAS,SATA,和HD TUNE
  8. c#解析XML和JSON
  9. Pythoner | 你像从前一样的Python学习笔记
  10. MVC打开电脑对话框
  11. cpu亲和力总结taskset和setcpu及其他相关
  12. SFTP上传下载(C#)
  13. GPSR协议移植
  14. Node v0.12.5 稳定版发布
  15. MySQL5.5.51启用网络远程连接
  16. python中打印一个字符串中有多少个单词
  17. 浅淡volatile原理
  18. BZOJ5343[Ctsc2018]混合果汁——主席树+二分答案
  19. Sql server中 如何用sql语句创建视图
  20. 巧用ios朗读kindle图书

热门文章

  1. Python——五分钟理解元类(metaclasses)
  2. 51单片机 | 模拟PWM调制控制实验
  3. 早来的圣诞礼物!--android 逆向菜鸟速參手冊完蛋版
  4. excel表格快捷键
  5. 《STL源代码剖析》学习笔记系列之七、八——仿函数和配接器
  6. stage3D基础五-----Working with 3D cameras(转)
  7. Sphinx之配置文件
  8. Java并发:等待事件发生后所有线程继续执行
  9. Python读取word文档(python-docx包)
  10. jquery get ($.get) 事件用法与分析