java中log4j学习笔记
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学习笔记的更多相关文章
- Java中ArrayList学习笔记
1. 先看两段代码 这段代码在执行的时候会报 但是这样写就好着呢: 总结,研究报错的代码 ,在for循环的时候调用next()方法,next方法中调用了checkForComodification这个 ...
- Java多线程技术学习笔记(二)
目录: 线程间的通信示例 等待唤醒机制 等待唤醒机制的优化 线程间通信经典问题:多生产者多消费者问题 多生产多消费问题的解决 JDK1.5之后的新加锁方式 多生产多消费问题的新解决办法 sleep和w ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- java之jvm学习笔记二(类装载器的体系结构)
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...
- java之jvm学习笔记十三(jvm基本结构)
java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...
- Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)
在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...
随机推荐
- 延迟实例化 Lazy<T>
之前写的设计模式 单例模式中,推荐了使用Lazy<T>来达到线程安全和减少系统资源消耗的作用. 作用及优点: 创建某一个对象需要很大的消耗,而这个对象在运行过程中又不一定用到,为了避免每次 ...
- Java企业微信开发_09_素材管理之下载微信临时素材到本地服务器
一.本节要点 1.获取临时素材接口 请求方式:GET(HTTPS) 请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=AC ...
- basepath的作用 (转)
转自:http://blog.csdn.net/randomnet/article/details/8630754 在谈basePath之前,先来讨论一下相对路径与绝对路径的区别. 相对路径 ...
- java 多线程Callable和Runable执行顺序问题详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt125 毫无疑问 Runnable会进行异步执行,此处不多说,主要说明Call ...
- 网络编程:基于C语言的简易代理服务器实现(proxylab)
本文记录了一个基于c socket的简易代理服务器的实现.(CS:APP lab 10 proxy lab) 本代理服务器支持keep-alive连接,将访问记录保存在log文件. Github: h ...
- Spring Cloud官方文档中文版-客户端负载均衡:Ribbon
官方文档地址为:http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#_spring_cloud_netflix 文中例子我做了一些测试在:h ...
- !Web云笔记--HTML基础
Web自学笔记第一阶段笔记综合汇总 参考资料:<Head First HTML&CSS>(中文第二版)(美国)弗里昂ISBN:9787508356464 中国电力出版社 全部阶段: ...
- MySQL (二)-- 数据类型(列类型)、数值类型、 小数类型、 时间日期类型、 字符串类型 、 MySQL记录长度、列属性
1 数据类型(列类型) 所谓的数据类型:对数据进行统一的分类,从系统的角度出发是为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中将数据类型分成了三大类: 2 数值类型 数值类型数据:都 ...
- 201521123042 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 Q1.clone方法 1.1 Object ...
- 201521123004 《Java程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 答: 异常的概念上周的思维导图大致体现,这周就归纳一下错误调试 由于多线程的内容比较散,我就直接用文字总结 ...