zoukankan      html  css  js  c++  java
  • Log4j基本使用方法


    Log4j日志文件配置  https://blog.csdn.net/prety_boy/article/details/53306102

    Log4j由三个重要的组件构成:

      日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。

      1.日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;

      2.日志信息的输出目的地指定了日志将打印到控制台还是文件中;

      3.输出格式则控制了日志信息的显 示内容。

    [level] 是日志输出级别,共有5级:

      FATAL       0  
      ERROR      3  
      WARN       4  
      INFO         6  
      DEBUG      7

    Appender 为日志输出目的地,Log4j提供的appender有以下几种:

    org.apache.log4j.ConsoleAppender(控制台),
    org.apache.log4j.FileAppender(文件),
    org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
    org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
    org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)


    Layout:日志输出格式,Log4j提供的layout有以下几种:

    org.apache.log4j.HTMLLayout(以HTML表格形式布局),
    org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
    org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
    org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
     

    打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:

       %m   输出代码中指定的消息
      %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
      %r   输出自应用启动到输出该log信息耗费的毫秒数 
      %c   输出所属的类目,通常就是所在类的全名 
      %t   输出产生该日志事件的线程名 
      %n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” 
      %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921  
      %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 
     
     
    在程序中使用Log4j之前,首先要将commons-logging.jar和logging-log4j-1.2.9.jar导入到classpath中,并将log4j.properties放于src根目录中。
    注:推荐使用commons-logging结合log4j进行日志记录,这样便于以后更换成其他日志工具,降低系统的藕合性,使其可以不依赖于log4j: 
    private static Log logger = LogFactory.getLog(TestLog.class); 

    另外,一个类我们只需一个日志记录器,因此我们需把日志记录器定义成该类的一个私有的且为静态的属性,如上面的:private static Log logger = LogFactory.getLog(TestLog.class),其实如果我们不这样定义,即使每次使用时我们就创建一个日志记录器,得到的还是以前使用过的,因为log4j帮我们做了这样的处理:相同名的日志记录器在内存中
     
    【配置文件】
    ### set log levels ###
    log4j.rootLogger = debug ,  stdout ,  D ,  E

    ### 输出到控制台 ###
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n

    ### 输出到日志文件 ###
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = logs/log.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

    ### 保存异常信息到单独文件 ###
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File = logs/error.log ## 异常日志文件名
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    [代码中使用] 
    public   class  TestLog4j  {
         public   static   void  main(String[] args)  {
            PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );
            Logger logger  =  Logger.getLogger(TestLog4j. class );
            logger.debug( " debug " );
            logger.error( " error " );
        } 
    }
  • 相关阅读:
    Angular使用$compile为从Ajax加载的HTML绑定ng-click事件
    js获取判断苹果手机机型
    工作中遇到的常见问题
    js实现文字超出部分用省略号代替实例代码
    微信企业号开发之weixin://preInjectJSBridge/fail
    构造函数,super()
    微信企业号开发之 企业号人员身份认证与开发
    微信企业号开发之回调模式的接口开发
    微信公众号开发的开发环境要求和准备工作
    react-router 中的history(react中关于后退键的处理用的到)
  • 原文地址:https://www.cnblogs.com/buyige/p/9565396.html
Copyright © 2011-2022 走看看