zoukankan      html  css  js  c++  java
  • log4j.properties配置

      作为一个新手,正在看代码,对于深入的东西并没有了解。log4j的配置还在学习中,有不对的地方谢谢指出。

    一、Log4j简介

      Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;

      我们也可以控制每一条日志的输出格式;

      通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

      最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

      此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。

      log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。可简单理解为日志类别(Loggers),日志要输出的地方(Appenders)和日志以何种形式输出(Layouts)。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。

        1.Loggers组件(输出级别种类)在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,Log4j有一个规则:只输出级别不低于设定级别的日志信息,假设Loggers级别设定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。

    1 log4j.rootLogger= [ level ] , appenderName1, appenderName2, …
    #level :设定日志记录的最低级别,可设的值有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别,Log4j建议只使用中间四个级别。
    #通过在这里设定级别,您可以控制应用程序中相应级别的日志信息的开关,
    #比如在这里设定了INFO级别,则应用程序中所有DEBUG级别的日志信息将不会被打印出来。
    #appenderName:就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。

        2.Appenders(配置日志信息输出目的地)禁用和使用日志请求只是Log4j的基本功能,Log4j日志系统还提供许多强大的功能,比如允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等。

     1 常使用的类如下:
     2 org.apache.log4j.ConsoleAppender(控制台)
     3 org.apache.log4j.FileAppender(文件)
     4 org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
     5 org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
     6 org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
     7 
     8 配置模式:
     9 log4j.appender.appenderName = className
    10 log4j.appender.appenderName.Option1 = value1
    11 12 log4j.appender.appenderName.OptionN = valueN

        3.Layouts有时用户希望根据自己的喜好格式化自己的日志输出,Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。

     1 常使用的类如下:
     2 org.apache.log4j.HTMLLayout(以HTML表格形式布局)
     3 org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
     4 org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
     5 org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
     6 
     7 配置模式:
     8 log4j.appender.appenderName.layout =className
     9 log4j.appender.appenderName.layout.Option1 = value1
    10 11 log4j.appender.appenderName.layout.OptionN = valueN

    二、配置详解

      1.配置根Logger:

    示例:【参照一.1】
    1
    log4j.rootLogger=INFO,A1,B2,C3

      2.配置日志信息输出目的地(appender):

        (1)ConsoleAppender选项:

          Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。    
          ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
          Target=System.err:默认值是System.out。
        (2)FileAppender选项:
          Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
          ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
          Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。
          File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。
        (3)DailyRollingFileAppender选项:
          Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
          ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
          Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true

          File=D:/logs/logging.log4j:指定当前消息输出到logging.log4j文件中。
          DatePattern='.'yyyy-MM:每月滚动一次日志文件,即每月产生一个新的日志文件。当前月的日志文件名为logging.log4j,前一个月的日志文件名为logging.log4j.yyyy-MM。

        (4)RollingFileAppender选项:
          Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
          ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
          Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。
          File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。
          MaxFileSize=100KB:后缀可以是KB, MB 或者GB。在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logging.log4j.1文件中。
          MaxBackupIndex=2:指定可以产生的滚动文件的最大数,例如,设为2则可以产生logging.log4j.1,logging.log4j.2两个滚动文件和一个logging.log4j文件。

      3.配置日志信息的输出格式(Layout)

        (1)HTMLLayout选项:
          LocationInfo=true:输出java文件名称和行号,默认值是false。
          Title=My Logging: 默认值是Log4J Log Messages。

        (2)PatternLayout选项:
          ConversionPattern=%m%n:设定以怎样的格式显示消息。

    #示例有ConsoleAppender和DailyRollingFileAppender 
    1
    log4j.appender.console= org.apache.log4j.ConsoleAppender 2 log4j.appender.console.Target= System.out 3 log4j.appender.console.Threshold= DEBUG 4 log4j.appender.console.layout= org.apache.log4j.PatternLayout 5 log4j.appender.console.layout.ConversionPattern= %d{yyyy-MM-dd HH:mm:ss}|%5p|%c{1}|%C|%M: %L - %m%n 6 %d:输出日志时间点的日期或时间
    7 8 log4j.appender.LogFile= org.apache.log4j.DailyRollingFileAppender 9 log4j.appender.LogFile.File= log/app.log 10 log4j.appender.LogFile.Append= true 11 log4j.appender.LogFile.Threshold= DEBUG 12 log4j.appender.LogFile.layout= org.apache.log4j.PatternLayout 13 log4j.appender.LogFile.layout.ConversionPattern= %d{yyyy-MM-dd HH:mm:ss}|%5p|%c{1}|%C|%M: %L - %m%n

    内容大都来源于:http://it.oyksoft.com/log4j/ (感谢)

    Spring中配置log4j:http://blog.csdn.net/tiger119/article/details/7432364 (感谢)

      

  • 相关阅读:
    POJ 2251 Dungeon Master
    HDU 3085 Nightmare Ⅱ
    CodeForces 1060 B Maximum Sum of Digits
    HDU 1166 敌兵布阵(树状数组)
    HDOJ 2050 折线分割平面
    HDU 5879 Cure
    HDU 1878 欧拉回路
    HDU 6225 Little Boxes
    ZOJ 2971 Give Me the Number
    HDU 2680 Choose the best route
  • 原文地址:https://www.cnblogs.com/yinqx/p/6275367.html
Copyright © 2011-2022 走看看