zoukankan      html  css  js  c++  java
  • JAVA中的Log4j

    Log4j的简介:

    1.如果程序中出现异常我们怎么解决
       01 使用异常处理机制==>异常  02 使用debug调试(必须掌握)     03 System.out.Print();

            001.控制台行数有限制
            002.影响性能
            003 如果我们需要对用户的行为和习惯进行分析!不能解决这个问题
    我们需要一个能把记录用户行为和习惯的代码记录到一个文件中

    Log4j:(Log for Java)
     01.是使用java语言编写的一个日志框架
     02.是Apache的一个开源项目
     03.记录我们程序中的日志信息
     04.将日志信息输出到我们指定的目的地
     .log结尾的(日志文件);

    Log4j的作用:
     01.记录代码中变量的变化,用于我们的程序调试和后期维护. 
     02.可以周期性的保存一些数据,用于后期对数据的分析
     03.通过设置日志信息的级别,来便于我们管理

    Log4j的组成部分:(日志的记录器(Logger),日志的输出格式(Layout),3.日志的输出目的地(Appender))
    1.日志的记录器(Logger)
      日志的输出级别
              OFF     级别最高,用于关闭所有的日志输出
              ALL     级别最低,用于开启所有的日志输出 
    ----------------------------------------------------------------------------------                 
             Fatal        严重的错误事件,将导致我们的程序终止
             Error       错误事件,不会影响我们程序的继续执行
             Warn      存在潜在的错误场景
             Info        指的是粗粒度级别上的使用
             Debug   指的是细粒度级别上的使用
            Trace   比Debug还要细的    
                          
            开发环境(开发阶段)  : 使用的日志级别比较低   Debug
            生产环境 (项目上线) : 建立把Debug细粒度的设置成Warn
      
    2.日志的输出格式(Layout)
        %p     日志信息的优先级
               %d      日志信息的输出时间   %d{yyyy-MM-dd hh:mm:ss}
               %C     日志信息的输出类
               %l       日志信息的输出位置:类+线程+行号
               %M    日志信息的输出 所在方法
               %m    日志信息的输出的内容
               %n    输入日志信息之后 换行
    -----------------------------------------------下面两种不常用------------------------------
               %t  日志信息的输出 所在线程
               %r  从程序启动到输出日志信息所经历的时间(毫秒)
    3.日志的输出目的地(Appender)
      01.把我们的日志信息输出到某个地址
              02.可以同指定多个输出地
              03.一个输出地就对应一个Appender
                         将日志输出到Console控制台中====》ConsoleAppender
                          将日志输出到文件中
                          ====》01.RollingFileAppender       根据文件的大小创建新的日志文件
                          ====》02.DailyRollingFileAppender  根据时间创建新的日志文件

    下面第一个例子创建一个Log4j的项目

     1 package baselog4j;
     2 
     3 import org.apache.log4j.Logger;
     4 
     5 /**
     6  * @2018-04-19
     7  * @王鸿
     8  * @Administrator
     9  */
    10 public class BaseLog4j {
    11 
    12     public static void main(String[] args) {
    13         // 日志收集器
    14         Logger logger = Logger.getLogger(BaseLog4j.class);
    15         logger.fatal("fatal message");
    16         logger.error("error message");
    17         logger.warn("warn message");
    18         logger.info("info message");
    19         logger.debug("debug message");
    20         logger.trace("trace message");
    21     }
    22 }
    23 下面是一个配置文件里面的 "log4j.properties"
    24
     1 # 01.把我们的日志信息  输出到Console控制台上
     2 #  ConsoleAppender  console=new ConsoleAppender();
     3 #log4j.appender.console规范写法   console就是一个对象名称 可以自定义
     4 log4j.appender.console=org.apache.log4j.ConsoleAppender
     5 #对象名.属性  target输出地
     6 log4j.appender.console.Target=System.err
     7 # 创建输出格式所需要的对象 Layout
     8 log4j.appender.console.Layout=org.apache.log4j.PatternLayout
     9 #  设置输出格式
    10 log4j.appender.console.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l  %m  %n
    11 #通过log4j.rootLogger  来指定我们的日志输出级别和输出目的地
    12 # 级别必须位于第一个位置,只能有一个
    13 log4j.rootLogger=debug,console

    下面是输出结果

    下面的是同时在控制台中和电脑的E盘同时创建(main的代码不变)

    # 01.把我们的日志信息  输出到Console控制台上
    #  ConsoleAppender  console=new ConsoleAppender();
    #log4j.appender.console规范写法   console就是一个对象名称 可以自定义
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    #对象名.属性  target输出地
    log4j.appender.console.Target=System.err
    # 创建输出格式所需要的对象 Layout
    log4j.appender.console.Layout=org.apache.log4j.PatternLayout
    #  设置输出格式
    log4j.appender.console.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l  %m  %n
    
    #02.输出到文件中  根据文件大小自动创建
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    #指定文件输出位置
    log4j.appender.file.File=e:/log/log4j.log
    #设置文件最大容量
    log4j.appender.file.MaxFileSize=1kb
    #如果超过了文件大小创建几个新文件
    log4j.appender.file.MaxBackupIndex=3
    #如果文件都满了  设置是否覆盖之前的文件
    log4j.appender.file.Append=true
    # 创建输出格式所需要的对象 Layout
    log4j.appender.file.Layout=org.apache.log4j.PatternLayout
    #  设置输出格式
    log4j.appender.file.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l  %m  %n
    
    
    
    #通过log4j.rootLogger  来指定我们的日志输出级别和输出目的地
    
    # 级别必须位于第一个位置,只能有一个
    log4j.rootLogger=debug,console,file

    这样会在E盘下log文件夹下创建一个以log4j.log的日志文件

    下面创建一个每分钟创建的"log4j.properties"

    # 01.把我们的日志信息  输出到Console控制台上
    #  ConsoleAppender  console=new ConsoleAppender();
    #log4j.appender.console规范写法   console就是一个对象名称 可以自定义
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    #对象名.属性  target输出地
    log4j.appender.console.Target=System.err
    # 创建输出格式所需要的对象 Layout
    log4j.appender.console.Layout=org.apache.log4j.PatternLayout
    #  设置输出格式
    log4j.appender.console.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l  %m  %n
    
    
    #02.输出到文件中  根据文件大小自动创建
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    #指定文件输出位置
    log4j.appender.file.File=e:/log/log4j.log
    #设置文件最大容量
    log4j.appender.file.MaxFileSize=1kb
    #如果超过了文件大小创建几个新文件
    log4j.appender.file.MaxBackupIndex=3
    #如果文件都满了  设置是否覆盖之前的文件
    log4j.appender.file.Append=true
    # 创建输出格式所需要的对象 Layout
    log4j.appender.file.Layout=org.apache.log4j.PatternLayout
    #  设置输出格式
    log4j.appender.file.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l  %m  %n
    
    
    #03.每分钟生成一个新文件
    log4j.appender.file2=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file2.Append=true
    #DatePattern共分为6种方式
    log4j.appender.file2.DatePattern=yyyy-MM-dd-hh-mm'.log'
    log4j.appender.file2.File=e:/log/log4j.log
    # 创建输出格式所需要的对象 Layout
    log4j.appender.file2.Layout=org.apache.log4j.PatternLayout
    #  设置输出格式
    log4j.appender.file2.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l  %m  %n
    
    
    
    
    
    #通过log4j.rootLogger  来指定我们的日志输出级别和输出目的地
    # 级别必须位于第一个位置,只能有一个
    log4j.rootLogger=trace,console,file2
    
    #指定包中的日志输出
    #log4j.logger.com.ddf=trace,console,file2

    DailyRollingFileAppender中的 DatePattern共分为6种方式

           1.每月        yyyy-MM
           2.每周        yyyy-ww
           3.每天        yyyy-MM-dd
           4.每半天    yyyy-MM-dd-a
           5.每小时    yyyy-MM-dd-hh
           6.每分钟    yyyy-MM-dd-hh-mm

  • 相关阅读:
    刷题的 vscodeleetcode
    一个简单的小程序演示Unity的三种依赖注入方式
    WCF服务端运行时架构体系详解[上篇]
    通过WCF扩展实现消息压缩
    通过“四大行为”对WCF的扩展[原理篇]
    [WCF权限控制]利用WCF自定义授权模式提供当前Principal[原理篇]
    [WCF权限控制]ASP.NET Roles授权[下篇]
    [WCF权限控制]通过扩展自行实现服务授权[提供源码下载]
    通过自定义ServiceHost实现对WCF的扩展[实例篇]
    [WCF权限控制]WCF自定义授权体系详解[实例篇]
  • 原文地址:https://www.cnblogs.com/wh1520577322/p/8759707.html
Copyright © 2011-2022 走看看