log4j学习篇
来源:互联网 发布:win7网络共享工具 编辑:程序博客网 时间:2024/05/07 00:59
首先,在Apache官网中下载log4j的jar包:http://logging.apache.org 将其引入项目中。
然后,在src下新建配置log4j.properties ,下面是一个例子:
log4j.rootLogger =DEBUG,stdout,Runlog,Debuglog#stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.Threshold=DEBUGlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH\:mm\:ss} %c %m %n #Runloglog4j.appender.Runlog.Threshold=INFOlog4j.appender.Runlog=org.apache.log4j.FileAppenderlog4j.appender.Runlog.File = RunFile.loglog4j.appender.Runlog.Append=falselog4j.appender.Runlog.layout=org.apache.log4j.PatternLayout log4j.appender.Runlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH\:mm\:ss} %c %m %n #Debugloglog4j.appender.Debuglog.Threshold=DEBUGlog4j.appender.Debuglog=org.apache.log4j.FileAppenderlog4j.appender.Debuglog.File = DebugFile.loglog4j.appender.Debuglog.Append=falselog4j.appender.Debuglog.layout=org.apache.log4j.PatternLayout log4j.appender.Debuglog.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH\:mm\:ss} %c %m %n
其中 Log4j. rootLogger =level,appenderName,appenderName, …. 是一个根日志存储器
Level 表示 日志记录的优先级,从高到低有 FATAL(崩溃)、ERROR(错误)、WARN(警告)、INFO(信息)、DEBUG(调试)等。当选择了INFO的话 ,INFO 和高于INFO的FATAL、ERROR、WARN信息会被记录。一般在应用开发阶段的时候级别是DEBUG,应用发布后为ERROR。
appenderName表示日志存储器,可以有多个日志存储器分别将日志记录输出在不同地方。
上例中,stdout 是输出到控制台,而Runlog 与 Debuglog 是输出到文件。
在Stdout中:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender表示储存器的种类,一共有五种:
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)
log4j.appender.stdout.Target=System.out 表示信息打印在System.out 上
log4j.appender.stdout.Threshold=INFO 表示存储器记录级别是INFO,高于INFO的都会打印出来。但是注意,根日志存储器相当于总阀门,而这里的存储器相当于子阀门,当Log4j. rootLogger设定为ERROR,log4j.appender.stdout.Threshold设为DUBUG时,存储器也只会记载高于等于ERROR的信息。
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout表示日志记录信息输出的格式,一共有4种:
org.apache.log4j.HTMLLayout (以html格式表格形式布局)
org.apache.log4j.PatternLayout (自定义布局)
org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等信息)
log4j.appender.stdout.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH\:mm\:ss} %c %m %n 表示格式化输出:
%d 输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
%l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
%n 换行符
%m 输出代码指定信息,如info(“message”),输出message
%p 输出优先级,即 FATAL ,ERROR 等
%r 输出从启动到显示该log信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
在Runlog 不同于stdout 之处:
log4j.appender.Runlog=org.apache.log4j.FileAppender信息输出在文件中。
log4j.appender.Runlog.File = RunFile.log 信息输出文件的目录,这里是相对路径src目录中
log4j.appender.Runlog.Append=false表示日志记录文件中的信息是否追加,false表示不追加,每次记录都会删除之前的信息,重新记录,true表示不会删除而是追加记录。
下面是一个测试软件:
package t.eighteen;import org.apache.log4j.Logger;public class LoggerTest {private static Logger log = Logger.getLogger(LoggerTest.class);public static void main(String[] args) {if(log.isInfoEnabled()){log.info("the TestApp is begin");}test();}private static void test() {// TODO Auto-generated method stubif(log.isDebugEnabled()){log.debug("ined the test");}if(log.isInfoEnabled()){log.info("testing...");}if(log.isDebugEnabled()){log.debug("willout the test");}}}
结果 控制台:
INFO 2013-02-20 09:51:39 t.eighteen.LoggerTest the TestApp is begin DEBUG 2013-02-20 09:51:39 t.eighteen.LoggerTest ined the test INFO 2013-02-20 09:51:39 t.eighteen.LoggerTest testing... DEBUG 2013-02-20 09:51:39 t.eighteen.LoggerTest willout the test
Runlog.txt:
INFO 2013-02-20 09:51:39 t.eighteen.LoggerTest the TestApp is begin INFO 2013-02-20 09:51:39 t.eighteen.LoggerTest testing...
Debuglog.txt:
INFO 2013-02-20 09:51:39 t.eighteen.LoggerTest the TestApp is begin DEBUG 2013-02-20 09:51:39 t.eighteen.LoggerTest ined the test INFO 2013-02-20 09:51:39 t.eighteen.LoggerTest testing... DEBUG 2013-02-20 09:51:39 t.eighteen.LoggerTest willout the test
- log4j学习篇
- 学习篇--log4j.properties
- Log4j学习
- log4j学习
- 学习log4j
- Log4j学习
- Log4j学习- -
- Log4j学习
- Log4J学习
- Log4j学习
- Log4j 学习
- log4j学习
- Log4j学习
- log4j学习
- log4j学习
- log4j学习
- log4j学习
- log4j学习
- Java运算符
- Andorid简单应用理财工具-实现添加账单页面
- 基于WiEngine游戏引擎--物理引擎
- 未来是湿的
- 删除特殊字符.的数据库
- log4j学习篇
- Quartz常用方法整理
- POWERDESIGNER学习档案教程设计数据库的20条技巧 .
- 为一名架构师,我们应该掌握哪些技术呢?
- eclipse up-to-date with pom.xml. Run Maven 解决
- 200多个js特效分享
- Java虚拟机深入学习之四: Java虚拟机的性能监控和故障处理工具
- MySql按周/月/日分组统计数据的方法
- 设计的几大基本法则