zoukankan      html  css  js  c++  java
  • Log4j官方文档翻译(三、配置)

      之前的章节介绍了log4j的核心组件,本章将会通过配置文件介绍一下核心组建的配置。

      主要在配置文件中配置log4j的日志级别,定义appender、layout等。

      log4j.properties是log4j的配置文件,它采用键值对的方式定义。

      默认情况下,logManager对象会在CLASSPATH目录下寻找log4j.properties

    先看看基本的配置模板

    # Define the root logger with appender X
    log4j.rootLogger = DEBUG, X
    # Set the appender named X to be a File appender
    log4j.appender.X=org.apache.log4j.FileAppender
    # Define the layout for X appender
    log4j.appender.X.layout=org.apache.log4j.PatternLayout
    log4j.appender.X.layout.conversionPattern=%m%n

      看看这个配置文件都做了什么:

    • 首先日志的级别是DEBUG,另外还添加来一个appender,名字是X。
    • 设置appender的名字是X,并且定义该appender的实现为org.apache.log4j.FileAppender,即文件读写方式
    • 为X设置显示的方式——layout

    真实样例

    # Define the root logger with appender file
    log4j.rootLogger = DEBUG, FILE
    # Define the file appender
    log4j.appender.FILE=org.apache.log4j.FileAppender
    log4j.appender.FILE.File=${log}/log.out
    # Define the layout for file appender
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.conversionPattern=%m%n

      上面的配置文件又做了什么呢?

    • 日志的root级别为DEBUG,DEBUG的appender名字是FILE。
    • 设置FILE的实现为org.apache.log4j.FileAppender,它会把日志信息写入日志目录中叫log.out的文件。
    • layout的格式定义为%m%n,意思是每条日志都会跟随一个换行符。

      需要注意的是log4j支持UNIX风格的变量引用,比如${variableName}

    Appenders

      log4j提供了多种的Appender对象,用于输出日志消息到不同的目的地,比如控制台,文件,系统事件日志等等。每个appender对象都有不同的配置属性,这些属性定义来对象的行为。

    • layout    appender使用这个layout对象转换日志信息的格式
    • target    目标可能是控制台、文件、也可能依赖于其他的appender
    • level    用于设定过滤日志的级别
    • threshhold    appender可以设置阈值,与日志的级别有关。日志会忽略掉所有低于该级别的日志
    • filter    过滤器对象能够分析日志信息,然后决定日志请求由某个appender处理还是丢掉

      可以通过下面的方式,给logger添加appender

    log4j.logger.[logger-name]=level, appender1,appender..n

      当然如果在XML也可以通过下面的方式:

    <logger name="com.apress.logging.log4j" additivity="false">
        <appender-ref ref="appender1"/>
        <appender-ref ref="appender2"/>
    </logger>
    

       如果想在程序中添加appender,则可以调用下面的方法:

    public void addAppender(Appender appender);

      这个addAppender()方法向logger对象中添加appender。

      像例子中展示的,它可以同时配置多个appender,每个日志都会独立的发送不到不同的目的地


      上面只展示来FileAppender的用法,log4j还有下面的appender以供使用:

    • AppenderSkeleton
    • AysncAppender
    • ConsoleAppender
    • DailyRollingFileAppender
    • ExternallyRolledFileAppender
    • FileAppender
    • JDBCAppender
    • JMSAppender
    • LF5Appender
    • NTEventLogAppender
    • NullAppender
    • RollingFileAppender
    • SMTPAppender
    • SocketAppender
    • SocketHubAppender
    • SyslogAppender
    • TelnetAppender
    • WriterAppender

    layout

      上面使用过PatternLayout,下面还有其他的选项:

    • DateLayout
    • HTMLLayout
    • PatternLayout
    • SimpleLayout
    • XMLLayout

      不同的appenders和layout用法,后续会慢慢更新。

  • 相关阅读:
    这样的面试题你会吗
    5个强盗分100颗宝石 你该怎么分?
    《Java程序员全攻略:从小工到专家》连载十四:先挣的是资本,后挣的是钱
    不是三维——软件项目的设计、开发与管理
    《Java程序员职场全攻略:从小工到专家》连载十三:给自己估个好价
    程序开发心理学
    电子工业出版社博文视点图书在微软VS2010全球发布会上受追捧
    博文视点大讲堂25期——2天玩转单反相机
    《Java程序员职场全攻略:从小工到专家》连载十五:我们不是爱加班
    管理小品(1)
  • 原文地址:https://www.cnblogs.com/xing901022/p/4853394.html
Copyright © 2011-2022 走看看