zoukankan      html  css  js  c++  java
  • log4j一些配置用法

    基本使用方法:

    Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

    日志信息的优先级

    org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别。

    Level描述
    ALL 各级包括自定义级别
    DEBUG 指定细粒度信息事件是最有用的应用程序调试
    ERROR 错误事件可能仍然允许应用程序继续运行
    FATAL 指定非常严重的错误事件,这可能导致应用程序中止
    INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
    OFF 这是最高等级,为了关闭日志记录
    TRACE 指定细粒度比DEBUG更低的信息事件
    WARN 指定具有潜在危害的情况

    日志级别是如何工作的?

    级别p的级别使用q,在记录日志请求时,如果p>=q启用。这条规则是log4j的核心。它假设级别是有序的。对于标准级别它们关系如下:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF。

    下面的例子明确指出如何可以过滤所有的DEBUG和INFO消息。这个程序使用记录并执行setLevel(Level.X)方法来设置所需的日志记录级别。

    这个例子将打印,除了调试和信息的所有消息:

    import org.apache.log4j.*;
    
    public class LogClass {
       private static org.apache.log4j.Logger log = Logger
                                        .getLogger(LogClass.class);
       public static void main(String[] args) {
          log.setLevel(Level.WARN);
    
          log.trace("Trace Message!");
          log.debug("Debug Message!");
          log.info("Info Message!");
          log.warn("Warn Message!");
          log.error("Error Message!");
          log.fatal("Fatal Message!");
       }
    }
    

    当编译并运行LogClass程序会产生以下结果:

    Warn Message!
    Error Message!
    Fatal Message!
    

    使用配置文件设置级别:

    Log4j提供这些可以让程序员自由更改源代码,改变调试级别的配置级别是基于文件设置。

    以下是上面的例子使用 log.setLevel(Level.WARN)方法的配置文件与上面的例子例子功能一样。

    # Define the root logger with appender file
    log = /usr/home/log4j
    log4j.rootLogger = WARN, 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
    

    现在,使用下面的程序:

    import org.apache.log4j.*;
    
    public class LogClass {
       private static org.apache.log4j.Logger log = Logger
                                        .getLogger(LogClass.class);
       public static void main(String[] args) {
          log.trace("Trace Message!");
          log.debug("Debug Message!");
          log.info("Info Message!");
          log.warn("Warn Message!");
          log.error("Error Message!");
          log.fatal("Fatal Message!");
       }
    }
    

    现在,编译和运行上面的程序,得到以下结果在 /usr/home/log4j/log.out 文件:

    Warn Message!
    Error Message!
    Fatal Message!
    1. <p>下面是配置文件log4j.properties</p>  
    2. <p></p>  
    3. <pre code_snippet_id="2005179" snippet_file_name="blog_20161124_2_572588" name="code" class="html">log4j.rootLogger= Console,Info,Warn, Error,Fatal  
    4.   
    5. #Console  
    6. log4j.appender.Console=org.apache.log4j.ConsoleAppender  
    7. log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
    8. log4j.appender.Console.Threshold = OFF    
    9.   
    10. #Info  
    11. log4j.appender.Info=com.xcinfo.cool.util.LogUtil  
    12. log4j.appender.Info.File=./cold_chain_log_info.log  
    13. log4j.appender.Info.layout=org.apache.log4j.PatternLayout  
    14. log4j.appender.Info.Threshold = INFO  
    15. log4j.appender.Info.File.DatePattern='.'yyyy-MM-dd'.log'  
    16.   
    17. #Warn  
    18. log4j.appender.Warn=com.xcinfo.cool.util.LogUtil  
    19. log4j.appender.Warn.File=./cold_chain_log_warn.log  
    20. log4j.appender.Warn.layout=org.apache.log4j.PatternLayout  
    21. log4j.appender.Warn.Threshold = DEBUG  
    22. log4j.appender.Warn.File.DatePattern='.'yyyy-MM-dd'.log'  
    23.   
    24. #Error  
    25. log4j.appender.Error=com.xcinfo.cool.util.LogUtil  
    26. log4j.appender.Error.File=./cold_chain_log_err.log  
    27. log4j.appender.Error.layout=org.apache.log4j.PatternLayout  
    28. log4j.appender.Error.Threshold = ERROR   
    29. log4j.appender.Error.File.DatePattern='.'yyyy-MM-dd'.log'  
    30.   
    31. #Fatal  
    32. log4j.appender.Fatal=com.xcinfo.cool.util.LogUtil  
    33. log4j.appender.Fatal.File=./cold_chain_log_fatal.log  
    34. log4j.appender.Fatal.layout=org.apache.log4j.PatternLayout  
    35. log4j.appender.Fatal.Threshold = FATAL  
    36. log4j.appender.Fatal.File.DatePattern='.'yyyy-MM-dd'.log'  
    37.   
    38.   
    39. </pre><br>  
    40. 配置简要说明:<br>  
    41. <br>  
    42. log4j.appender.test.File=./xc_app_log_error.log    "表示输出文件路径"<br>  
    43. log4j.appender.RollingFile.File.DatePattern='.'yyyy-MM-dd'.log'   <br>  
    44. 表示每天生成一个日志文件,当天的日志文件会保存在xc_app_log_error.log文件中<br>  
    45. 到了第二天,会将昨天的日志文件xc_app_log_error.log保存为xc_app_log_error.'yyyy-MM-dd'.log',并将第二天的文件保存在新的<br>  
    46. xc_app_log_error.log文件中,以此类推每过一天就追加一天的日志文件<br>  
    47. <br>  
    48. <p></p>  
    49. <p>log4j.appender.RollingFile.Threshold =日志级别   分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG<br>  
    50. <br>  
    51. <br>  
    52. static Level DEBUG<br>  
    53. DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。<br>  
    54. <br>  
    55. static Level INFO<br>  
    56. INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。<br>  
    57. <br>  
    58. static Level WARN<br>  
    59. WARN level表明会出现潜在错误的情形。<br>  
    60. <br>  
    61. static Level ERROR<br>  
    62. ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。<br>  
    63. <br>  
    64. static Level FATAL<br>  
    65. FATAL level指出每个严重的错误事件将会导致应用程序的退出。<br>  
    66. <br>  
    67. 另外,还有两个可用的特别的日志记录级别: (以下描述来自log4j API http://jakarta.apache.org/log4j/docs/api/index.html):<br>  
    68. static Level ALL<br>  
    69. ALL Level是最低等级的,用于打开所有日志记录。<br>  
    70. <br>  
    71. static Level OFF<br>  
    72. OFF Level是最高等级的,用于关闭所有日志记录。<br>  
    73. </p>  
    74. <p><br>  
    75. </p>  
    76. <p><br>  
    77. </p>  
    78. <p><br>  
    79. <br>  
    80. <br>  
    81. </p>  
    82. <pre></pre>  
    83. <div style="top:1474px"><br>  
    84. </div>  
    85. <div style="top:1474px"><br>  
    86.    <br>  
    87. </div>  
    88. <div style="top:1532px"><br>  
    89. </div>  
    90. <div style="top:0px"><br> 
  • 相关阅读:
    Study Plan The TwentySecond Day
    Study Plan The Nineteenth Day
    Study Plan The TwentySeventh Day
    Study Plan The Twentieth Day
    Study Plan The TwentyFirst Day
    python实现进程的三种方式及其区别
    yum makecache
    JSONPath 表达式的使用
    oracle执行cmd的实现方法
    php daodb插入、更新与删除数据
  • 原文地址:https://www.cnblogs.com/zhangdiIT/p/6876657.html
Copyright © 2011-2022 走看看