博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA中的Log4j
阅读量:5957 次
发布时间:2019-06-19

本文共 5055 字,大约阅读时间需要 16 分钟。

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  %n11 #通过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# 创建输出格式所需要的对象 Layoutlog4j.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# 创建输出格式所需要的对象 Layoutlog4j.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# 创建输出格式所需要的对象 Layoutlog4j.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# 创建输出格式所需要的对象 Layoutlog4j.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.DailyRollingFileAppenderlog4j.appender.file2.Append=true#DatePattern共分为6种方式log4j.appender.file2.DatePattern=yyyy-MM-dd-hh-mm'.log'log4j.appender.file2.File=e\:/log/log4j.log# 创建输出格式所需要的对象 Layoutlog4j.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

 

转载于:https://www.cnblogs.com/wh1520577322/p/8759707.html

你可能感兴趣的文章
切图崽的自我修养-[ES6] 编程风格规范
查看>>
服务器迁移小记
查看>>
FastDFS存储服务器部署
查看>>
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
推荐JS插件:imagesLoaded,监测图片加载情况并提供相应的事件(加载成功/失败)...
查看>>
Java B2B2C多用户商城 springcloud架构- common-service 项目构建过程(七)
查看>>
杨老师课堂之ArrayList集合常用方法解析
查看>>
ElasticSearch Client详解
查看>>
新零售讲堂之时代下的传统零售业,何去何从?
查看>>
c++读取和写入TXT文件的整理
查看>>
深入动态人脸识别小场景应用,2019年或将迎来爆发期
查看>>
linux安全问答(1)
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
解读最具O2O属性—哈根达斯微信企业号的成功之道
查看>>
Extjs4.x (MVC)Controller中refs以及Ext.ComponentQuery解析
查看>>
Server-01 How to Find the Remote Desktop Port
查看>>
Java--接口、抽象与继承
查看>>