从零开始学 Java - log4j 项目中的详细配置
你还会用笔来写字么
我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来;有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了;有时候写出来了一大堆字之后,等一段时间回过头来看,这时候会去质疑这些字是不是自己写的。
我在每一年的七月总是会拿起笔去写一篇日志,来使自己对过去的一年产生一些仪式感。那问题来了:在程序的世界里,写日志的意义是什么?
日志存在的意义
毫无疑问,日志的意义就是为了记录。记录下程序执行的过程、调试信息、错误信息以及我们想要输出的信息,这可能就是一个最简单且完整的日志系统了,正常来说,我们的项目中一般并不会有一个强大的监控系统以及日志系统,最多是写一个log文件,然后打印出错误信息,其实,对于一个对监控要求不是很高,没有太多开发时间的互联网项目,这个简单的 log 文件就够了,完全可以满足我们的需要。
Java 项目中大家一般都喜欢使用 log4j 来记录日志。
Log4j 是 Apache 的一个开源项目,通过使用Log4j ,我们可以控制日志信息输送的目的地是控制台、文件、 GUI 组件,甚至是套接口服务器、NT 的事件记录器、 UNIX Syslog 守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
特别简单的配置
一、在 CLASSPATH 下建立 log4j.properties
文件,其实就是/src/
目录下。
# Priorities are: DEBUG, INFO, WARN, ERROR, or FATAL.
log4j.rootCategory=INFO, CONSOLE, FILE
logs.dir=${catalina.base}/logs/springdemo/
logs.filename=logs
fileBufferSize=20480
#log to File
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=${logs.dir}/${logs.filename}
log4j.appender.FILE.encoding=UTF-8
log4j.appender.FILE.Append=true
log4j.appender.FILE.LocationInfo=true
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[%-5p] %d(%r) --> %l: %m %x %n
log4j.appender.FILE.bufferSize=${fileBufferSize}
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
就这么简单。你先不要管这些是什么意义,下面会讲的。怎么使用呢?
二、使用
就这么简单。
这里的配置意思是:打印 Info 级别
的日志信息,调试运行会输出在控制台并写入文件。文件地址为 Tomcat 目录的 logs/springdemo
文件夹下的 logs 文件
中,并且会每天产生一个日志文件。如果你理解这些就大概知道怎么配置了,这里会涉及到日志级别、输出位置、日志格式、文件地址等等各种配置,自定义起来特别方便,不过你就要理解它各个属性的含义了。我这里推荐博客园园友牛奶、不加糖
的一篇讲配置的文章,写的特别详细,大家可以去仔细看并配置自己想要的效果。地址:http://www.cnblogs.com/ITtangtang/p/3926665.html
下一篇从零开始学 Java - Spring MVC 统一异常处理就来讲讲怎么使用log4j对异常处理过的信息记录下来,文章的具体的案例,都可以访问我的 Github 看到 https://github.com/mafly/SpringDemo