log4j2的简单应用

这里只说明一下log4j2的简单配置和应用,类似“hello world”范例。

首先,需要在pom.xml中配置log4j2的依赖dependency:

复制代码
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.1</version>
    </dependency>
复制代码

log4j2和之前的的1.x版本有一个明显的不同,其配置文件只能采用.xml, .json或者 .jsn。而1.x版本很多都是用properties文件的,所以这里需要注意下。

下面是一个完整的xml格式的配置文件,定义了appenders,loggers,以及输出的pattern。更多配置项请查看官网。xml文件命名为log4j2.xml,放置在项目目录下:

src/main/resources/log4j2.xml   或者是

src/test/resources/log4j2.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!-- 设置log4j2的自身log级别为warn -->
<!-- OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<configuration status="WARN" monitorInterval="30">
    <appenders>
        <console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </console>
        
        <File name="LogFile" fileName="src/test/resources/log.txt">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </File>
 
    </appenders>
 
    <Loggers>
        <Logger name="fileLog" level="info" additivity="true">
            <AppenderRef ref="LogFile" />
        </Logger>
        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
 
</configuration>
复制代码

在需要日志输入的java类文件中,声明Logger对象,注意import的是

1
2
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

 千万别import成java util类库的logger

1
java.util.logging.Logger

 声明并使用:

1
2
3
public static final Logger logger = LogManager.getLogger(XXX.class);
 
logger.info("this is a log");

 

posted @   心笔轩  阅读(439)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示