Log4j的简介:

1.如果程序中出现异常我们怎么解决
    使用异常处理机制==>异常   使用debug调试(必须掌握)     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的项目

 package baselog4j;

 import org.apache.log4j.Logger;

 /**
* @2018-04-19
* @王鸿
* @Administrator
*/
public class BaseLog4j { public static void main(String[] args) {
// 日志收集器
Logger logger = Logger.getLogger(BaseLog4j.class);
logger.fatal("fatal message");
logger.error("error message");
logger.warn("warn message");
logger.info("info message");
logger.debug("debug message");
logger.trace("trace message");
}
}
下面是一个配置文件里面的 "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
#通过log4j.rootLogger 来指定我们的日志输出级别和输出目的地
# 级别必须位于第一个位置,只能有一个
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

JAVA中的Log4j的更多相关文章

  1. JAVA中使用log4j及slf4j进行日志输出的方法详解

    JAVA中输出日志比较常用的是log4j,这里讲下log4j的配置和使用方法,以及slf4j的使用方法.  一.下载log4j的架包,并导入项目中,如下: 二.创建log4j.properties配置 ...

  2. JAVA中使用LOG4J记录日志(转)

    在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...

  3. JAVA中使用LOG4J记录日志

    在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...

  4. java 中使用log4j

    一.控制台使用 1.导入log4j包到工程中 2.配置: log4j.rootLogger=DEBUG,console,R log4j.appender.console=org.apache.log4 ...

  5. Java中使用Log4j记录错误、输出日志

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

  6. 在java项目中使用log4j的实例

    测试log4j的项目结构 Log4j.properties的路径为    src/config/log4j Log4j.properties文件的内容 下面定义日志输出级别是 INFO,并且配置了2个 ...

  7. java web中使用log4j

    测试log4j的项目结构 Log4j.properties的路径为    src/config/log4j Log4j.properties文件的内容 下面定义日志输出级别是 INFO,并且配置了2个 ...

  8. 【转】详细讲解Java中log4j的使用方法

    转载地址:http://www.233.com/Java/zhuangye/20070731/142625631.html 1.Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 ...

  9. Java中log4j的使用

    前言 距离上一篇文章又过去好长时间了,这段时间一直忙于工作,已经从net彻底转向Java了.工作也慢慢的步入正轨了,自己独自完成了一个小项目,不过工作中遇到了一些问题,还是得到了同学和同事的帮助.本来 ...

随机推荐

  1. JS 装饰器解析

    随着 ES6 和 TypeScript 中类的引入,在某些场景需要在不改变原有类和类属性的基础上扩展些功能,这也是装饰器出现的原因. 装饰器简介 作为一种可以动态增删功能模块的模式(比如 redux ...

  2. Java集合框架(二)

    原文  http://www.jianshu.com/p/2070cb32accb List接口 查阅API,看 List 的介绍.有序的 collection (也称为序列).此接口的用户可以对列表 ...

  3. if语句2017-03-17

    1.If语句: if(判断条件){ 判断为true的时候执行的语句 } else{ 判断为false的时候执行的语句 } 2.If else语句:        if(判断条件){ 判断为true的时 ...

  4. 不root手机的情况下查看Android数据库

    最近写Android的时候发现想要读取数据库很不方便,使用adb工具的方法需要root手机,而华为手机root十分麻烦,需要解除密码,一些品牌手机即使root了也没有sqlite3命令,总之十分麻烦. ...

  5. 选择排序—堆排序(Heap Sort) 没看明白,不解释

    堆排序是一种树形选择排序,是对直接选择排序的有效改进. 基本思想: 堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足 时称之为堆.由堆的定义可以看出,堆顶元素(即第一个元素) ...

  6. mongodb的安装和配置

    1.下载安装 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz tar zxf mongodb-linux-x8 ...

  7. Algorithm --> 树中求顶点A和B共同祖先

    树中求顶点A和B共同祖先 题目: 给定一颗树,以及两个顶点A和B,求最近的共同祖先,和包含的子顶点个数? 比如:给定如下图的树,以及顶点13和8,则共同祖先为3,以3为root的子顶点共有8个

  8. C++关联容器知识总结

    C++的容器类型可以分为顺序容器和关联容器两大类.顺序容器的知识可以参看我上篇的随笔<C++顺序容器知识总结>.关联容器支持通过键值来高效的查找和读取元素,这是它和顺序容器最大的区别.两种 ...

  9. [poj3461]Oulipo_KMP

    Oulipo poj-3461 题目大意:给你两个字符串s和p,问s中有多少个等于p的子串. 注释:$1\le strlen(p)\le 10^4\qquad1\le strlen(s)\le 10^ ...

  10. Dynamics 365 for CRM: Sitemap站点图的可视化编辑功能

    Dynamics 365 for CRM 提供了Sitemap站点图的可视化编辑功能 在之前的所有版本中,我们只能通过从系统中导出站点图的XML进行编辑后再导入(容易出错),或使用第三方的Sitema ...