Log4j配置使用的简单教程
来源:互联网 发布:从元数据 编辑:程序博客网 时间:2024/05/17 03:49
Log4j是个好东西,软件运行过程中输出日志都靠他啦。不过因为日常的开发工作,都是直接使用也没有怎么仔细研究过,所以现在好好研究研究。其实Log4j还是很简单的,常用的东西不是很多,配置文件理清楚就明白了。
Log4j由三个重要的组件构成:日志信息的级别(level),日志信息的输出目的地(Appender),日志信息的输出格式(Layout)。
日志信息的级别从高到低为:
- off 最高等级,用于关闭所有日志记录。
- fatal 指出每个严重的错误事件将会导致应用程序的退出。
- error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
- warm 表明会出现潜在的错误情形。
- info 一般和在粗粒度级别上,强调应用程序的运行全程。
- debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
- all 最低等级,用于打开所有日志记录。
分别用来指定这条日志信息的重要程度;
日志信息的输出目的地指定了日志将打印到控制台还是文件中;
日志信息的输出格式则控制了日志信息的显示内容,是以什么样的格式输出的。
下面就来看看log4j是如何配置以及简单使用的。
一、log4j的配置格式
1、首先配置配置根Logger,格式为:
log4j.rootLogger = [level] , appenderName1, appenderName2,blablabla...
这里的level就是上文说的日志信息的级别,常用的是ERROR、WARN、INFO、DEBUG,是不区分大小写的。后面紧跟的appenderName则是日志输出目的地的Appender,Appender的名字是可以随便起的,只要在下面的配置中做对应的配置就好。
2、接下来要配置各个Appender,格式为:
log4j.appender.appenderName=【Appender日志信息输出目的地】
其中log4j提供的Appender有以下几种:
- org.apache.log4j.ConsoleAppender(控制台),
- org.apache.log4j.FileAppender(文件),
- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
配置相应的Appender就会输出到对应的地方。
log4j.appender.appenderName.File=日志文件保存目录(如果是输出到控制台,就不用配置这一项了)log4j.appender.appenderName.Append=true true表示日志信息增加到指定文件中,false则将日志信息覆盖指定的文件内容,默认值是truelog4j.appender.appenderName.Threshold=DEBUG 只输出DEBUG级别以上的日志 设置日志输出级别log4j.appender.appenderName.layout=【Layout日志布局格式】
其中log4j提供的布局格式有以下几种:
- org.apache.log4j.HTMLLayout(以HTML表格形式布局),
- org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
- org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
- org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.appenderName.layout.ConversionPattern=日志输出格式
Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
- %m 输出代码中指定的消息
- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
- %r 输出自应用启动到输出该log信息耗费的毫秒数
- %c 输出所属的类目,通常就是所在类的全名
- %t 输出产生该日志事件的线程名
- %n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
- %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
- %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
所以可以根据自己的需求配置自由搭配的输出格式,如:%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
一个很简单的配置:
log4j.properties### 设置 ###log4j.rootLogger=debug,stdout,DDD,EEE### 输出信息到控制台 ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n### 输出DEBUG 级别以上的日志到=/Users/tinybye/Documents/log4j/debug.log ###log4j.appender.DDD=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.DDD.File=/Users/tinybye/Documents/log4j/debug.loglog4j.appender.DDD.Append=truelog4j.appender.DDD.Threshold=DEBUGlog4j.appender.DDD.layout=org.apache.log4j.PatternLayoutlog4j.appender.DDD.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 输出ERROR 级别以上的日志到=/Users/tinybye/Documents/log4j/error.log ###log4j.appender.EEE=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.EEE.File=/Users/tinybye/Documents/log4j/error.loglog4j.appender.EEE.Append=truelog4j.appender.EEE.Threshold=ERRORlog4j.appender.EEE.layout=org.apache.log4j.PatternLayoutlog4j.appender.EEE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
二、使用log4j输出日志
首先要导入log4j的依赖包,新建一个测试类Log4jText.java。然后将配置文件log4j.properties放在和测试类相同的路径的resource文件夹下。如图所示:
Log4jText类代码如下:
import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;/** * Created by tinybye on 2017/3/14. */public class Log4jText { private static Logger logger = Logger.getLogger(Log4jText.class); public static void main(String[] args) { //获取log4j配置文件 PropertyConfigurator.configure(ClassLoader.getSystemResource("resource/log4j.properties")); logger.error("ERROR!!!!!");//输出error级别的日志 logger.debug("DEBUG~");//输出debug级别的日志 }}
运行后控制台输出日志如图所示:
输出日志:
在配置的路径下生成两个log日志文件,不同级别的日志信息输出到了对应的log日志文件中。
呐,就是一些很简单的东西,日常的使用中这些肯定是足够了的。如果想更多的了解log4j的内容,可以看看下面的参考文章。
参考文章:
http://www.codeceo.com/article/log4j-usage.html
http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html
http://blog.csdn.net/azheng270/article/details/2173430/
=========这里是分割线2017.08.26=========
三、整合Spring mvc
这几天在丰富自己的一个小项目,想着要把log4j集成到Spring mvc中,所以在这里简单的记述一下。
配置很简单,只要在web.xml文件中进行配置就好,配置如下:
<!--log4j配置文件地址--> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>WEB-INF/classes/resource/config/log4j.properties</param-value> </context-param> <!--log4j监听--> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
0 0
- Log4j配置使用的简单教程
- Log4j的简单配置使用!
- Log4j的简单配置使用!
- Log4j的简单配置使用
- log4j使用配置教程
- log4j配置使用教程
- Log4j的简单教程
- Log4j使用--简单配置
- log4j的配置以及简单使用
- log4j 的简单配置与使用
- log4j和log4j2的简单使用配置
- 简单介绍Log4J的使用和Spring 配置log4j
- Spring 配置log4j和简单介绍Log4J的使用
- Spring 配置log4j和简单介绍Log4J的使用
- Spring 配置log4j和简单介绍Log4J的使用
- Spring 配置log4j和简单介绍Log4J的使用
- Spring 配置log4j和简单介绍Log4J的使用
- log4j简单的配置
- struts2框架原理
- RecyclerView -- 更强大的滚动控件1
- spartan6 MCB调试中碰到的问题
- Java停止线程运行的三种方式
- Win10下安装TensorFlow
- Log4j配置使用的简单教程
- Caffe框架解析(训练和测试数据流向)
- Android的生命周期(三)--Activity的生命周期
- Gym 101246(ACM ICPC 2010-2011, NEERC, Southern Subregional Contest Russia, Saratov)
- PyQt IDE 环境搭建
- Java从入门到精通阅读笔记(第4版)12
- 螺旋方针(螺旋矩阵)
- 设置Dialog的显示宽度
- 《win32多线程程序设计》学习笔记四