简介:简单记录一下在Eclipse中如何配置并使用Log4J。
Log4J:Java日志框架,把日志信息输出到控制台或指定文件。并把日志信息划分成了不同的等级,使得我们可以通过设置等级,来决定何种级别的日志被输出出来以及何种不被输出。
比如把桃子分为**“好–中--差”**三个等级,如果我们设置说只要中等以上,那么差的桃子就不会出现在我们的视野,如果我们说只要好,那么中差都不会出现。当然,日志信息的"好中差"也是我们自己定义的,我们说他好,他就是好。
Log4J
1 创建项目并导入Jar包
首先创建一个Java工程,然后新建一个文件夹,文件夹取名一般可以为lib
。
然后把Log4J的Jar包复制进来。
但此时的Jar包还不能被使用,还需要配置一下路径,方法如下:
选中lib文件夹右击 ---->
Bulid Path ---->
Configure Bulid Path,随后看到如下界面
此时jar包就已经导入成功了。
2 编写配置文件
在src文件夹下创建log4j.properties
配置文件。参考如下:
### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=info,stdout,logfile
#输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d %l %m %n
#输出到文件
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=log01.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%p %d %F %M %m%n
关于配置文件,我们关注这几个重点:
1️⃣ 第一行,设置日志输出的级别,只能输出该级别及以上的信息。常见日志等级如下:debug < info < warn < error < fatal
。比如本例中,设置的级别就是info。后面的两个参数stdout和logfile用来表示是否输出到控制台和文件,如果都写,就会都输出。但如果都不写的话会弹出警告,毕竟日志只有这2个输出位置,都不输出的话,设置日志也就失去了意义。
2️⃣ 第二部分,主要用来设置一些输出到控制台时的相关配置。
3️⃣ 第三部分,用来设置一些输出到文件时的相关配置。log4j.appender.logfile.File=log01.log
是用来指定输出文件的位置。
3 编写代码测试
//要注意导入的包是阿帕奇的
import org.apache.log4j.Logger;
public class Demo {
//获得Demo类的日志对象
private static Logger logger = Logger.getLogger(Demo.class);
public static void main(String[] args) throws Exception {
//根据配置文件等级设置的不同,控制台和文件中也会有不同的输出
logger.error("错误✖");
logger.debug("测试");
logger.info("普通信息");
}
}
这里配置文件写的info
,所以更低级的debug就没有输出。
Log4J2
Log4J2的简单使用和Log4J类似。不同的导入的jar包变成了
并且配置文件不再使用.properties
而改成.xml
或.json
类型,参考如下:
<?xml version="1.0" encoding="UTF-8"?>
-<Configuration>
-<Appenders>
<!-- 配置日志输出文件名字 追加读写 -->
-<File append="true" fileName="A1.log" name="A1">
<!-- 输出格式 -->
<PatternLayout pattern="%t %-5p %c{2} - %m%n"/>
</File>
<!-- 标准输出 -->
-<Console name="STDOUT" target="SYSTEM_OUT">
<!-- 输出格式 -->
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
-<Loggers>
<!-- 配置记录器级别 -->
-<Root level="fatal">
<!-- 输出设置 -->
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="A1"/>
</Root>
</Loggers>
</Configuration>
使用方法也有略微的不同:
//注意导入的包
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Log4j2Demo {
static Logger logger = LogManager.getLogger(Log4j2Demo.class);
public static void main(String[] args) {
logger.fatal("致命");
}
}