log4j1.2xjava
1.全名: logging tools for(four) java
apache
2.日志显示方式
app
a. 打印到控制台 (比较便捷,适合程序开发调试阶段,但持久化能力不足)socket
b. 保存到文件工具
c. 保存成每日邮件spa
d. 保存成网页debug
e. 保存到某个socket位置
3.日志级别:调试
1. DEBUG (the least serious) 操做的细节 日志
2. INFO 处于哪一个阶段,正在作什么,作完以后结果如何继承
3. WARN 警告,表示可能出现错误
4. ERROR 出现了错误,但系统能应付,须要立刻寻求纠正
5. FATAL (the most serious) 出现了致命错误,系统没法继续运行,须要中止工做,等待修复
4.核心:
日志器 logger
追加器 appender
风格化工具 layout
5.构成:
log4j-1.2.14.jar
log4j.properties
content:
###################################################################
#
# Log4J Settings for log4j 1.2.x (via jakarta-commons-logging)
#
# The five logging levels used by Log are (in order):
#
# 1. DEBUG (the least serious)
# 2. INFO
# 3. WARN
# 4. ERROR
# 5. FATAL (the most serious)
# Set root logger level to WARN and append to stdout
# 根日志器,其它日志器若是没有特殊指明其日志游戏规则,那么将默认继承根日志器的规则。
# rootLogger是在系统中,全部Log4j日志器的父类,相似于日志器的Object.
# log4j.rootLogger=warn,appender1,appender2,....appenderN.. (第一个参数为日志级别,后面的是追加器)
log4j.rootLogger=Error, stdout
#某个包下面的全部类以及子包类统一设置日志操做规则
log4j.logger.edu.fjnu=info
#定制本身的日志说明,下例表示edu.fjnu下面包的日志输出信息是debug级别
# 为某个类的日志器定义个性化设置 log4j.logger.edu.fjnu.Log4jTest=info,appender1,appender2...
log4j.logger.edu.fjnu.Log4jTest=debug, stdout
# stdout : standard out 标准输出(追加器名称) org.apache.log4j.ConsoleAppender 这是控制台追加器
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
# %d:为时间(date) %5p:%5表明最长宽度是5 ( %-5p 表示右对齐 ) p为日志级别 %c 为类名(class) %m 为消息本体(message) %n 为换行
log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n
# Print only messages of level ERROR or above in the package noModule.
log4j.logger.noModule=FATAL
#log4j.logger.com.opensymphony.xwork2=DEBUG
#log4j.logger.org.apache.struts2=DEBUG
############################################################################
6. log4j日志器的建立
1)一个类仅仅拥有一个日志器
private static final Logger logger = Logger.getLogger(Test.class);
7. appender的设置
//制定控制台追加器,名为stdou
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d{yyyyMMdd HH:mm:ss,SSS} %5p [%c] %m%n
//制定 每日滚动文件追加器名为file,可按时间建立日志文件即会天天一文件的归档
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=d:\a.log //日志文件保存的路径
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} [%C:%M] - %m%n
8.example:
package edu.fjnu.test;
import org.apache.log4j.Logger;
public class Log4jTest {
private static final Logger logger = Logger.getLogger(Log4jTest.class);
public static void main(String[] args) {
// 查看当前日志级别是否为info 级别,若是是就打印
if (logger.isInfoEnabled())
logger.info("开始工做了.....");
System.out.println("忙了一天了,真累");
if (logger.isInfoEnabled())
logger.info("下班了....");
}
}