现在程序中的异常信息只能在控制台上看见。
你能想到的,别人都想到了,市场上有很多优秀的组件实现了日志的信息保存。
其中具有代表性的log4j
Log4j属于第三方组件
Java中的第三方组件,都是以jar包的形式存在。
Jar包类似于.rar或.zip,只是一个文件格式。
Jar包里存储的都是class字节码文件。
常规套路
(1)第三方jar包拷贝到你的项目中去
创建新工程
将log4j.jar包拷贝到lib目录中
(2)修改配置文件
Log4j框架配置文件log4j.properties配置使用详解_CycloneKid的博客-CSDN博客_log4j配置文件详解
#配置日志准备保存在哪里 多个位置可以使用分号分隔,位置可以随便写 info stdout ..abc
#console 控制台 file文件
#log4j.rootLogger = 日志级别,日志目的地1,日志目的地2,....目的地N
log4j.rootLogger = debug,console,file
#这里的日志级别为debug测试级别,将日志信息传送到console和file文件中去
#log4j.rootLogger=stdout,file
#控制台日志的输出格式
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %5p %d %C: %m%n
#上一行的语句是控制信息的格式
#文件日志的输出格式
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.File = D:/install/njwb.log
#上一行是指定日志信息存储的地址
#如果指定文件不存在,将会自动生成
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %l %m%n
#上一行的语句是控制信息的格式
右键src ----》new ----》file --àlog4j.properties
使用
package com.njwbhz.March.week1.part0304;
import org.apache.log4j.Logger;
public class TestLog4j {
public static void main(String[] args) {
//1. 获取一个日志记录器
//导入org.apache.log4j.Logger
Logger logger = Logger.getLogger(TestLog4j.class);
//2. 调用方法
logger.debug("debug");
logger.info("info");
logger.warn("warn");
logger.error("error");
logger.fatal("fatal");
//日志一共有五个级别
//debug、info、warn、error、fatal
//debug记录测试信息
//info记录正常信息
//error记录异常信息
}
}
package com.njwbhz.March.week1.part0304;
import org.apache.log4j.Logger;
public class TestException {
public static void main(String[] args) {
//获取一个日志记录器、这里调用的是Logger中的静态方法,所以不需要new一个对象
Logger logger = Logger.getLogger(TestException.class);
try {
int i = 1 / 0;
//执行到这一步会抛出异常
System.out.println(i);
} catch (Exception e) {
//这里输出异常信息
System.out.println(e.getMessage());
/// by zero
logger.error(e.getMessage());
//ERROR 2022-03-05 13:44:43,662 com.njwbhz.March.week1.part0304.TestException: / by zero
}
}
}
Log4j一共有5个日志级别
debug < info < warn < error < fatal
debug用于测试阶段,所有的日志信息都输出来
info:正常商用后采用info级别 info warn error fatal
warn: 输出warn error fatal
error: error fatal
记录正常的信息使用info方法
记录异常的信息使用error
记录测试的信息debug



