log4j是日志输出插件,专门用于进行日志管理。
日志是系统运行过程中的后台输出信息。
传统方式获取日志:
System.out.println() 进行后台打印
问题:
1.日志信息无法保存
2.无法显示完整日志信息
3.日志显示没有级别,所有日志混杂在一起,无法进行日志筛选
4.日志格式不友好
使用log4j进行日志管理:
1.日志可以单独保存在文件中
2.可以获取完整的日志信息
3.可以进行日志显示的筛选
4.格式友好
log4j.properties放在src下(可以拷贝eclipse中的log4j.properties文件)
log4j的使用流程:
1.导入log4j的jar包
2.配置log4j的配置文件
3.在使用log4j的类中声明全局的Logger对象
public static Logger logger=Logger.getLogger(类名.class)
使用Logger对象调用日志方法进行日志输出
log4j的配置文件解释:
注意:配置文件一定要存放在src下,并命名为log4j.properties
// 设置全局默认配置:
log4j.rootCategory=INFO, CONSOLE, LOGFILE 分别指默认级别,输出到控制台,输出到文件
// 设置某个包或者类或者某个方法的日志级别及输出位置:
log4j.logger.包名=FATAL, CONSOLE
log4j.logger.包名.类名=FATAL, CONSOLE
log4j.logger.包名.类名.方法名=DEBUG, CONSOLE
// 设置控制台输出配置: log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
// 设置文件输出位置:
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
常用输出格式:
%p-%d{yyyy/MM/dd hh:mm:ss}-%l-%m%n
# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=INFO, CONSOLE
#log4j.rootCategory=INFO, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
import org.apache.log4j.Logger;
public class TestLog {
public static void main(String[] args) {
// 创建log4j对象,logger进入内存,直接读取log4j.properties文件
Logger logger = Logger.getLogger(TestLog.class);
logger.debug("debug"); // 一般在方法内部使用
logger.info("info"); // 一般在方法调用时使用
logger.warn("warn"); // 一般在警告时使用
logger.error("error"); // 一般在catch代码块使用
logger.fatal("fatal"); // 一般在catch代码块中使用
}
}
log4j的日志级别:
FATAL 致命的错误
ERROR 异常错误
WARN 警告
INFO 信息(方法级别)
DEBUG 调试(代码级别)
log4j格式:
%C 包名+类名
%d{YYYY-MM-dd HH:mm:ss} 时间
%L 行号
%m 信息
%n 换行符
网友评论