美文网首页
Log4j入门

Log4j入门

作者: TedYin被占用了 | 来源:发表于2014-08-22 12:48 被阅读693次

    Log4J是什么?

    Log4J是Apache基金会下一个开源的日志管理项目,可以高度自定义日志的收集过程,和收集粒度,以及收集后日志的输出位置,可以输出到控制台,文件,数据库,甚至是远程服务器,这些操作仅仅只需要通过Log4J的配置文件进行定义后便可实现,是一个非常而且强大的日志收集库。除此之外,Log4J提供多语言兼容,可以在Java,Python,.Net等语言环境下的服务器中使用,可以对服务集群的日志进行统一管理。

    Log4J学习

    Log4J三大组件:

    1. Logger(记录器):只管记录日志(根据日志级别记录),不管日志存储在什么地方。
    2. Appender(存放器):将Logger记录的日志,存放到配置文件中所指向的地方,只处理日志的存放过程。
    3. Layout(布局):将日志进行格式化后再输出,也就是说他是用来让日志看这更顺眼的。当然如何算顺眼,由你在配置文件中设定。

    一个Logger可以有多个Appender,可以同时输出到多个设备上,每一个Appender都有一个Layout来格式化输出内容。

    Logger 组件

    有一个超类,log4j.rootLogger这个超类永远存在,可以使用Logger类中的getRootLogger()方法来获得这个对象的引用。

    Logger组件的继承关系:

    1. 如果子类Logger没有定义日志级别,那么它将继承父类的日志级别。
    2. 如果把子类Logger的组件的additivity设置为false(默认为true),那子类将不会继承父类的Appender,否则将继承父类所有的Appender。

    Appender 组件

    Appender用来决定日志要输出到什么地方,支持一下目的地:

    1. 控制台Console
    2. 文件File
    3. GUI组件
    4. 套接口服务器(Remote Socket Server)
    5. NT的事件记录器
    6. UNIX守护进程(输出到某个进程中去)(待验证)

    Layout 组件

    Layout组件决定日志的输出格式,有如下几类:

    1. org.apache.log4j.HTMLLayout 以Html格式输出日志
    2. org.apache.log4j.PatternLayout 以自定义Pattern的模式输出日志
    3. org.apache.log4j.SimpleLayout 包含日志信息的级别和,日志字符串
    4. org.apache.log4j.TTCCLayout 包含日志产生的线程,时间,类别等详细信息

    日志级别

    日志级别分为5种:

    • fatal 严重错误,会导致系统崩溃
    • error 虽然出错,但是系统依然可以运行
    • warn 警告,系统此处会有发生潜在错误的可能性
    • info 一般的运行时信息
    • debug 调试信息,粒度很细

    除了上述5中级别外,还有两种特殊级别的日志分类:

    • off 关闭日志,级别最高
    • all 打开日志,级别最低

    以上日志的级别高低排序如下:
    off > fatal > error > warn > info > debug > all
    当日配置的志级别为info时所有的Debug日志将不会输出。

    Log4J建议使用上述中的4种分别是:error、warn、info、debug

    Log4J 应用

    对于应用,无非就是配置和使用,先来看看如何在程序中配置Log4J

    Log4J的配置

    Log4J支持XML配置和properties文件两种方式进行配置,此处介绍后一种。

    对Logger的配置

    #Log4J  Logger
    #配置root Logger
    #log4j.rootLogger = [log level],[appender…] 
    log4j.rootLogger = INFO,console
    
    #自定义一个名为MyLogger的Logger
    log4j.logger.MyLogger = WARN #级别为warn,以为着info和debug级别的日志不会输出
    
    #定义一个继承MyLogger的Logger
    log4j.logger.MyLogger.MySonLogger = ,file  #”,file”表示日志级别继承自MyLogger,输出到文件
    

    对Appender的配置

    #定义一个输出到console的Appender
    log4j.appender.console = org.apache.log4j.ConsoleAppender
    #对于上述定义如果想对log4j的默认定义修改的话,可以继承自它并覆写相应的方法
    
    #定义一个输出到File的Appender
    log4j.appender.file = org.apache.log4j.FileAppender
    
    #日志输出的文件
    log4j.appender.file.File = log.txt
    

    对Layout的配置

    #设置file的格式化类型为HTML
    log4j.appender.file.layout = org.apache.log4j.HTMLLayout
    
    #设置console的格式化类型为SimpleLayout
    log4j.appender.console.layout = org.apache.log4j.SimpleLayout
    

    详细的使用请参考Log4J的API

    参考:

    日志级别
    Log4J的使用

    相关文章

      网友评论

          本文标题:Log4j入门

          本文链接:https://www.haomeiwen.com/subject/zgzetttx.html