行业资讯 2025年08月6日
0 收藏 0 点赞 911 浏览 2732 个字
摘要 :

文章目录 1.Log4j2 ConsoleAppender 配置 1.1 使用log4j2.xml 1.2. 使用log4j2.properties 2. 初始化 3.Spring Boot示例 Log4j2的ConsoleAppender将应用程序生成的日……




  • 1.Log4j2 ConsoleAppender 配置
    • 1.1 使用log4j2.xml
    • 1.2. 使用log4j2.properties
  • 2. 初始化
  • 3.Spring Boot示例

Log4j2的ConsoleAppender将应用程序生成的日志事件以System.out或System.err形式输出,默认目标是System.err。

用户在配置中可以使用PatternLayout属性指定控制台appender的日志消息模式。

1.Log4j2 ConsoleAppender 配置

使用和自定义以下给定的配置片段以配置ConsoleAppender。注意以下事项:

  • 我们可以在Properties部分定义常见的日志模式LOG_PATTERN常数并可以在多个appender中重复使用。
  • target属性指定日志消息的目标,即SYSTEM_OUT或SYSTEM_ERR。
  • follow属性指示在初始化日志记录配置后,appender 是否应接受System.out或System.err的重新配置。

1.1 使用log4j2.xml

在以下配置中,我们配置了一个名为“console”的ConsoleAppender,并指定LOG_PATTERN的target为SYSTEM_OUT。

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Configuration status=\"WARN\" monitorInterval=\"30\">
    <Properties>
        <Property name=\"LOG_PATTERN\">%d{yyyy-MM-dd\'T\'HH:mm:ss.SSSZ} %p %m%n</Property>
    </Properties>
    <Appenders>
        <Console name=\"console\" target=\"SYSTEM_OUT\" follow=\"true\">
            <PatternLayout pattern=\"${LOG_PATTERN}\"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level=\"info\">
            <AppenderRef ref=\"console\"/>
        </Root>
    </Loggers>
</Configuration>

1.2. 使用log4j2.properties

在以下配置中,我们正在将’console’配置为具有指定转换模式的System.out目标。

log4j.rootCategory=info,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.immediateFlush=true
log4j.appender.console.encoding=UTF-8
#log4j.appender.console.threshold=info
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd\'T\'HH:mm:ss.SSSZ} %p %m%n

2. 初始化

大多数web框架(例如Spring boot)不需要任何特定的代码来引导日志配置。我们所需要做的就是将log4j2.xml或log4j2.properties文件放在类路径中。

对于独立的Java应用程序,我们可以使用Configurator类来配置日志记录。这对于我们为特定的单元测试配置Log4j2时特别有用。

Configurator.initialize(\"TestClass\", \"log4j2.xml\");

注意log4j2.xml或指定文件必须存在于应用程序的类路径中。

3.Spring Boot示例

我们把log4j2.xml文件放在Spring Boot应用程序中。我们添加了以下3个语句来验证日志是否出现在控制台中以及正确的阈值。

在上述配置文件中,我们将阈值设置为info,因此只有info和error日志将在控制台中打印出来。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
  private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);
  public static void main(String[] args) {
    ApplicationContext ctx = SpringApplication.run(Application.class, args);
    LOGGER.info(\"Info level log message\");
    LOGGER.debug(\"Debug level log message\");
    LOGGER.error(\"Error Message Logged !!!\", new NullPointerException(\"NullError\"));
  }
}

控制台输出:

2021-02-24T18:24:00.107+0530 INFO Info level log message
2021-02-24T18:24:00.109+0530 ERROR Error Message Logged !!!
java.lang.NullPointerException: NullError
  at com.howtodoinjava.logging.demo.Application.main(Application.java:20) [classes/:?]

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9546.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号