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

文章目录 1.Log4j2 依赖项 2.log4j2.json 3.File Appender 4.Demo Apache Log4j 2 是对 Log4j 1.x 的升级,相对于其前身提供了重大改进,如性能提升、自动重新加载修改……




  • 1.Log4j2 依赖项
  • 2.log4j2.json
  • 3.File Appender
  • 4.Demo

Apache Log4j 2 是对 Log4j 1.x 的升级,相对于其前身提供了重大改进,如性能提升、自动重新加载修改过的配置文件、Java 8 lambda 支持和自定义日志级别。

除了 XML 和 properties文件,Log4j2 还可以使用 JSON 进行配置。

1.Log4j2 依赖项

要将 Log4j2 包含到项目中,请包括以下依赖项。

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.20.0</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.20.0</version>
</dependency>

Log4j2 使用 Jackson 来解析 JSON 文件,因此让我们添加它的依赖项。

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.15.0</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.15.0</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-annotations</artifactId>
  <version>2.15.0</version>
</dependency>

2.log4j2.json

您可以使用下面的 src/main/resources/log4j2.json 文件将日志输出到控制台。请注意,如果无法找到配置文件,将使用默认配置。这也将导致日志输出到控制台。

{
    \"configuration\": {
        \"status\": \"error\",
        \"name\": \"JSONConfigDemo\",
        \"packages\": \"com.howtodoinjava\",
        \"ThresholdFilter\": {
            \"level\": \"debug\"
        },
        \"appenders\": {
            \"Console\": {
                \"name\": \"STDOUT\",
                \"PatternLayout\": {
                    \"pattern\": \"%d [%t] %-5p %c - %m%n\"
                }
            }
        },
        \"loggers\": {
            \"root\": {
                \"level\": \"debug\",
                \"AppenderRef\": {
                    \"ref\": \"STDOUT\"
                }
            }
        }
    }
}

3.File Appender

您可以使用下面的 log4j2.json 文件将日志输出到基于大小的滚动文件。

{
   \"configuration\": {
      \"name\": \"Default\",
      \"appenders\": {
         \"RollingFile\": {
            \"name\":\"File\",
            \"fileName\":\"C:/logs/howtodoinjava.log\",
            \"filePattern\":\"C:/logs/howtodoinjava-backup-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz\",
            \"PatternLayout\": {
               \"pattern\":\"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n\"
            },
            \"Policies\": {
               \"SizeBasedTriggeringPolicy\": {
                  \"size\":\"10 MB\"
               }
            },
            \"DefaultRolloverStrategy\": {
               \"max\":\"10\"
            }
         }
      },
      \"loggers\": {
         \"root\": {
            \"level\":\"debug\",
            \"appender-ref\": {
              \"ref\":\"File\"
            }
         }
      }
   }
}

4.Demo

让我们编写一个 Java 类并写一些日志语句来验证日志是否出现在控制台和日志文件中。

public class Log4j2HelloWorldExample
{
    private static final Logger LOGGER = LogManager.getLogger(Log4j2HelloWorldExample.class.getName());
    public static void main(String[] args)
    {
        LOGGER.debug(\"Debug Message Logged !!!\");
        LOGGER.info(\"Info Message Logged !!!\");
        LOGGER.error(\"Error Message Logged !!!\", new NullPointerException(\"NullError\"));
    }
}

现在,当我们运行上面的程序时,我们将在控制台上看到以下日志。

2016-06-16 15:06:25 DEBUG Log4j2HelloWorldExample:12 - Debug Message Logged !!!
2016-06-16 15:06:25 INFO  Log4j2HelloWorldExample:13 - Info Message Logged !!!
2016-06-16 15:06:25 ERROR Log4j2HelloWorldExample:14 - Error Message Logged !!!
java.lang.NullPointerException: NullError at com.howtodoinjava.log4j2.examples.Log4j2HelloWorldExample.main
(Log4j2HelloWorldExample.java:14) [classes/:?]

微信扫一扫

支付宝扫一扫

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

管理员

相关推荐
2025-08-06

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

986
2025-08-06

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

463
2025-08-06

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

347
2025-08-06

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

455
2025-08-06

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

516
2025-08-06

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

831
发表评论
暂无评论

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

助力内容变现

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

点击联系客服

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

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号