1.什么是log4j2
(1)log4j
log4j是apache的一个开源项目,表示log for java.是一个日志工具,可以将日志信息输出到文件,控制台等其他地方 ,还可以定义日志的输出格式,另外还有日志级别的区分,可通过配置文件去配置输出格式,输出目的地等信息.
(2)log4j2
log4j2从名字就知道了,是log4j的升级版本,性能有了很大提升,增加了很多新特性(如自定义级别,lambda表达式)与新的API,直接与tomcat等服务器集成.
3.VScode下使用log4j2(不用Maven
(1)准备jar包
点击这里下载
作者用的是win10,下载zip.
(2)准备插件
(3)创建项目
ctrl+shift+p调出命令面板,输入new java project
(4)设置jar包路径
在项目根路径下新建lib文件夹,把下载的
这两个jar包放进去.
下一步设置.classpath.
添加
(5)新建测试文件
src下直接建立test.java
test.java:
import org.apache.logging.log4j.*;
public class test
{
private final static Logger logger = LogManager.getLogger(test.class.getName());
public static void main(String[] args) {
logger.info("info");
logger.error("error");
logger.debug("debug");
logger.trace("trace");
logger.fatal("fatel");
}
}
(6)运行
结果:
输出了fatel与error信息.
另外还提示了没有找到log4j2配置文件,使用默认的配置文件,默认输出到控制台.
(7)创建配置文件使其输出更多信息
src下创建log4j2.xml配置文件.
log4j2的配置文件只能是.xml或.json或.jsn文件,默认会在classpath下寻找(在这里classpath相当于图中的src).
默认情况下系统选择配置文件的优先级如下:
- 1.classpath下名为 log4j-test.json 或者log4j-test.jsn文件
- 2.classpath下名为 log4j2-test.xml
- 3.classpath下名为 log4j.json 或者log4j.jsn文件
- 4.classpath下名为 log4j2.xml
这里使用log4j2.
xml.log4j2.xml如下:
Logger三个主要的组件为
- logger(记录器)
- appender(输出目的地)
- layout(布局,定义日志的格式)
%logger表示输出logger名称.
%m是%msg与%message的缩写,表示输出应用提供的与记录事件有关的信息.
%n表示换行.
(8)再次运行
4.VScode下使用log4j2(带Maven)
(1)创建maven项目
使用插件maven for java创建,命令面板(ctrl+shift+p)输入.
ok.
(2)在pom.xml配置依赖
在
org.apache.logging.log4j
log4j-api
2.12.1
org.apache.logging.log4j
log4j-core
2.12.1
以下是完整的pom.xml:
4.0.0
com.example
test
1.0-SNAPSHOT
test
http://www.example.com
UTF-8
1.7
1.7
junit
junit
4.11
test
org.apache.logging.log4j
log4j-api
2.12.1
org.apache.logging.log4j
log4j-core
2.12.1
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-jar-plugin
3.0.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
maven-site-plugin
3.7.1
maven-project-info-reports-plugin
3.0.0
右键选择Update project configuration.
(3)创建log4j2.xml
(4)修改测试类
修改默认的App.java.
package com.example;
import org.apache.logging.log4j.*;
public class App
{
private static final Logger logger = LogManager.getLogger(App.class.getName());
public static void main( String[] args )
{
logger.info("info");
logger.error("error");
logger.debug("debug");
logger.trace("trace");
logger.fatal("fatel");
}
}
(5)测试
5.IDEA下使用log4j2(不用Maven)
(1)创建项目
(2)添加jar包
(3)新建测试类
package com.test;
import org.apache.logging.log4j.*;
public class Main {
private static final Logger logger = LogManager.getLogger(Main.class.getName());
public static void main(String[] args) {
logger.info("info");
logger.error("error");
logger.debug("debug");
logger.trace("trace");
logger.fatal("fatel");
}
}
(4)新建log4j2.xml
在src下新建log4j2.xml.
(5)测试
6.IDEA下使用log4j2(带Maven)
(1)创建maven项目 模块
(2)配置依赖
pom.xml中加入:
org.apache.logging.log4j
log4j-api
2.12.1
org.apache.logging.log4j
log4j-core
2.12.1
以下是完整的pom.xml文件
4.0.0
com.example
test
1.0-SNAPSHOT
org.apache.logging.log4j
log4j-api
2.12.1
org.apache.logging.log4j
log4j-core
2.12.1
(3)创建log4j2.xml
在target下的classes下创建log4j2.xml.
log4j2.xml:
(4)创建测试类
创建包与test.java.
test.java
package com.example;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class test {
private static final Logger logger = LogManager.getLogger(test.class.getName());
public static void main(String[] args) {
logger.info("info");
logger.error("error");
logger.debug("debug");
logger.trace("trace");
logger.fatal("fatel");
}
}
(5)测试
7.最后
这篇文章主要写了log4j2的入门级别的使用.以下是作者的公众号,欢迎关注.
参考:
1.log4j2(1)