Log4j是apache的一个开源项目,用来操作程序日志信息的框架。因便于管理,在工程中用来代替System.out打印语句。通过配置Log4j中的log4j.properties,可以指定日志信息的级别,输出地点,输出格式。
一、LOG4J组成  
 Log4j的有3大主要组件:
      1,Logger:记录器,决定什么日志信息应该被输出、什么日志信息应该被忽略。
      2,Appender:存放器,指定日志信息应该输出到什么地方,可以是控制台、文件、网络设备。
      3,Layout:布局格式,指定日志信息的输出格式。
   一个logger可以用多个appender,也就是说日志信息可以同时输出到多个设备上,每个appender对应一种layout。
   所以,记录器用来整合日志信息,一个日志信息调整好以后,交给记录器的所有存放器,每一个存放器根据自己的格式输出日志信息。
二、记录器组件Logger
   1.根记录器 : rootLogger
     配置语法 :log4j.rootLogger = [日志级别],存放器名1,存放器名2, ... ,存放器名N
     日志级别 :级别由高到低依次是:fatal、error、warn、info、debug。
     项目中代码:
          log4j.rootLogger=INFO, stdout, logfile
      跟记录器的日子级别是info,所以info,warn,error,fatal均会被执行。stdout,logfile是存放器。
   2. 在配置文件中配置Logger组件
      可在Log4J配置文件中配置自己的Logger组件
      项目中代码:
      log4j.logger.Application=INFO,Application
      log4j.logger.Service=DEBUG,Service
      log4j.logger.jdbc=INFO,jdbc
      log4j.logger.Action=INFO,Action
      定义了application,service,jdbc,action四个自己的logger组件,并分别配置了级别和存放器。

三、存放器组件Appender
    配置语法 :

log4j.appender.存放器名 = 存放类
         log4j.appender.存放器名.option1 = value1
     存放类:
 org.apache.log4j.ConsoleAppender         控制台输出
        org.apache.log4j.FileAppender          文件
        org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件
        org.apache.log4j.RollingFileAppender  文件大小到达指定尺寸的时候产生一个新的文件
        org.apache.log4j.WriterAppender   将日志信息以流格式发送到任意指定的地方

项目中代码:  
       Application记录器:
         log4j.appender.Application=org.apache.log4j.RollingFileAppender
         log4j.appender.Application.encoding=UTF-8
         log4j.appender.Application.File=/imagesys/logs/ImageCreditServer/ApplicationLog.log
         log4j.appender.Service.MaxFileSize=10240KB      
       Service记录器:
          log4j.appender.Service=org.apache.log4j.RollingFileAppender
          log4j.appender.Service.encoding=UTF-8
          log4j.appender.Service.File=/imagesys/logs/ImageCreditServer/ServiceLog.log
          log4j.appender.Service.MaxFileSize=10240KB
        jdbc记录器:
          log4j.appender.jdbc=org.apache.log4j.RollingFileAppender
          log4j.appender.jdbc.encoding=UTF-8
          log4j.appender.jdbc.File=/imagesys/logs/ImageCreditServer/jdbcLog.log 
          log4j.appender.jdbc.MaxFileSize=1024KB
        action记录器:
          log4j.appender.Action=org.apache.log4j.RollingFileAppender
          log4j.appender.Action.encoding=UTF-8
          log4j.appender.Action.File=/imagesys/logs/ImageCreditServer/ActionLog.log
          log4j.appender.Action.MaxFileSize=10240KB
  分别制定了输出文件的存放类,编码方式,文件路径,文件大小。
 四、格式化组件Layout
       配置语法 :
       log4j.appender.存放器名.layout = 格式类
       log4j.appender.存放器名.layout.option1 = value1
        … …
       log4j.appender.存放器名.layout.optionN = valueN
       输出格式类型:
       . org.apache.log4j.HTMLLayout(以HTML表格形式布局);
       . org.apache.log4j.PatternLayout(可以灵活地指定布局模式);
       . org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串);
       . org.apache.log4j.TTCCLayout(包含日志产生的时间、线程和类别等信息);
       符号             描述
        %r          自程序开始后消耗的毫秒数
        %t          表示日志记录请求生成的线程
        %p          表示日志语句的优先级
        %r          与日志请求相关的类别名称
        %c          日志信息所在的类名
        %m%n        表示日志信息的内容
       项目中代码: 
       log4j.appender.Application.layout=org.apache.log4j.PatternLayout
       log4j.appender.Application.layout.ConversionPattern=%d %p [%c] - %m%n
       以自定义的格式输出日志信息。

五、日志的分类

   SQL日志:记录系统执行的SQL语句。

   异常日志:记录系统运行中发生的异常事件。

   业务异常:记录系统运行过程,如用户登录、操作记录。

log4j是一个非常优秀的日志记录工具。通过log4就,我们可以控制日志输出级别,以及输出的目的地,以及控制每一条日志的输出格式

java中log4j学习笔记的更多相关文章

  1. Java中ArrayList学习笔记

    1. 先看两段代码 这段代码在执行的时候会报 但是这样写就好着呢: 总结,研究报错的代码 ,在for循环的时候调用next()方法,next方法中调用了checkForComodification这个 ...

  2. Java多线程技术学习笔记(二)

    目录: 线程间的通信示例 等待唤醒机制 等待唤醒机制的优化 线程间通信经典问题:多生产者多消费者问题 多生产多消费问题的解决 JDK1.5之后的新加锁方式 多生产多消费问题的新解决办法 sleep和w ...

  3. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  4. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  5. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  6. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  7. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  8. java之jvm学习笔记十三(jvm基本结构)

    java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...

  9. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

随机推荐

  1. python多种格式数据加载、处理与存储

    多种格式数据加载.处理与存储 实际的场景中,我们会在不同的地方遇到各种不同的数据格式(比如大家熟悉的csv与txt,比如网页HTML格式,比如XML格式),我们来一起看看python如何和这些格式的数 ...

  2. C#中的null与void

    一.null: 1.明义,null是什么意思? null是指一个变量没有指向具体对象的有效引用. 这句话什么意思呢?意思就是 1).能够使用null修饰的是变量: 2).主要指的是引用. 那么这就引出 ...

  3. js Date 函数方法 和 移动端数字键盘调用

    var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-???? ...

  4. C++ Primer : 第十三章 : 拷贝控制示例

    /* Message.h */ #ifndef _MESSAGE_H_ #define _MESSAGE_H_ #include <iostream> #include <strin ...

  5. android和ios流媒体库推荐

    1基本信息编辑 Vitamio是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.从2011年8月上线到2014年1月,Vitamio 凭借其简洁易用的 ...

  6. docker 通过commit方法创建镜像(Tomcat+Java+Scala)

    前一阵试了试写Dockerfile创建docker image,但有时全靠Dockerfile写实在有些难度,退而求其次试一试使用commit来创建镜像: 想了想干脆创建一个Java+Scala+To ...

  7. Spring在代码中获取bean的几种方式

    方法一:在初始化时保存ApplicationContext对象 方法二:通过Spring提供的utils类获取ApplicationContext对象 方法三:继承自抽象类ApplicationObj ...

  8. Microsoft Dynamics CRM 数据库连接存储位置在哪里 是在注册表里

    Microsoft Dynamics CRM 数据库连接存储位置是在注册表里

  9. 技术名词解释——Camus

    由LinkedIn公司开发的消息队列同步框架,提供将Kafka(一种消息队列框架)的数据装载到Hadoop分布式文件系统(HDFS)的功能. 英文版原文出处:http://docs.confluent ...

  10. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat ...