1.Log4j是什么
log4j是我们在开发中经常用到的日志功能,Apache提供的日志操作包,用于帮助用户处理日志信息。
2.Log4j能帮我们做什么事情
log4j可以帮助我们打印开发时的日志文件到控制台,文件,方便我们调试,解决运行时的错误
3.那么怎么使用Log4j呢?
- 创建项目
首先我们在idea下创建一个项目 - 导入log4j的jar包(通过maven下载或者本地导入都可以,如图)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210408204529435.png?x-oss- process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ4MDMzMDAz,size_16,color_FFFFFF,t_70#pic_center)
- 创建日志输出配置文件
有了log4j就可以在根路径(我这里使用的是java创建项目,不是maven,所以直接在根路径下)下创建log4j.properties文件(一定要是这个名字) - 配置log4j.properties文件
开始写入配置
#配置输出级别,输出的位置
log4j.rootLogger=debug,studout,logfile(其中studout和logfile可以根据个人喜好命名)
#将日志信息输出目标设置为控制台
log4j.appender.studout=org.apache.log4j.ConsoleAppender
#使用System.out.println输出
log4j.appender.studout.Target=System.out
#输出格式设置为默认(也可以选择后面的自定义输出,二选一)
log4j.appender.studout.layout=org.apache.log4j.SimpleLayout
#输出格式设置为自定义
log4j.appender.studout.layout=org.apache.log4j.PatternLayout
#干货来了(%l 包 %p 级别 %m message信息 %n newLine 新行)
log4j.appender.studout.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l %p %m %n
## 截止到目前控制台输出基本结束
## 接下来就是配置文件输出了
#设置输出文件
log4j.appender.logfile=org.apache.log4j.FileAppender
## 文件名字自定(我这里就是输出到根目录下了,也可以写绝对路径)
log4j.appender.logfile.File=mylog.log
#设置输出格式为自定义(当然输出格式也能写默认了,参考上面控制台输出)
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l %p %m%n
- 运行测试
运行代码的展示(写一个测试类)
public class TestLog1 {
public static void main(String[] args) {
TestLog1 testLog1 = new TestLog1();
testLog1.test1();
}
public void test1() {
Logger logger = Logger.getLogger(this.getClass());
logger.debug("这是一个调试信息");
logger.info("这是一个信息");
logger.warn("这是一个警告信息");
logger.error("这是一个错误信息");
logger.fatal("这是一个致命错误信息");
}
}
- 最后就是输出结果的展示了
2021-04-08 09:00:44 com.hkd.log.TestLog1.test1(TestLog1.java:13) DEBUG 这是一个调试信息
2021-04-08 09:00:44 com.hkd.log.TestLog1.test1(TestLog1.java:14) INFO 这是一个信息
2021-04-08 09:00:44 com.hkd.log.TestLog1.test1(TestLog1.java:15) WARN 这是一个警告信息
2021-04-08 09:00:44 com.hkd.log.TestLog1.test1(TestLog1.java:16) ERROR 这是一个错误信息
2021-04-08 09:00:44 com.hkd.log.TestLog1.test1(TestLog1.java:17) FATAL 这是一个致命错误信息