Spring-Spring Web项目中配置使用Log4j 2

举报
小工匠 发表于 2021/09/10 00:57:03 2021/09/10
【摘要】 Log4j 2概述为什么要使用Log4j 2Spring中配置Log4j 2 添加Maven依赖配置webxml配置Log4j 2使用Log4j 2 Log4j 2...

Log4j 2概述

请查看另外一篇博文Log4j2-Log4j 2介绍及使用


为什么要使用Log4j 2

Web容器中的监听 Log4jConfigListener在 Spring 4.2.1及以后被废弃。


Spring中配置Log4j 2

添加Maven依赖

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>${log4j2.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>${log4j2.version}</version>
</dependency>
<!-- web容器中需要添加log4j-web -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-web</artifactId>
    <version>${log4j2.version}</version>
</dependency>


<properties>

        <log4j2.version>2.8.2</log4j2.version>
</properties>
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

Web Applications 使用 Log4j 2 需要另外引用log4j-web

https://logging.apache.org/log4j/2.x/manual/webapp.html


配置web.xml

 <!-- log4j2-begin -->
  <!-- 默认在class类路径下,不需要额外配置引用 ,如果更改到其他地方,请配置 -->
<context-param>  
    <param-name>log4jConfiguration</param-name>  
    <param-value>classpath:log4j2.xml</param-value>  
</context-param>  

<listener>
    <listenerclass>
    org.apache.logging.log4j.web.Log4jServletContextListener
    </listener-class>
</listener>
<!-- log4j2-end -->


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

配置Log4j 2

具体查看 配置Log4j 2

我们这里以xml的方式编写Log4j 2的配置文件

这里写图片描述

举例,具体请根据实际需要修改

<?xml version="1.0" encoding="UTF-8"?>
<!-- log4j2使用说明:
使用方式如下:
private static final Logger logger = LogManager.getLogger(实际类名.class.getName());

-->

<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration status="info" monitorInterval="180">

    <!-- 文件路径和文件名称,方便后面引用 -->
    <Properties>
        <Property name="backupFilePatch">D:/workspace/workspace-sts/backupOracle/log/</Property>
        <Property name="fileName">backupOracle.log</Property>
      </Properties>
    <!--先定义所有的appender-->
    <appenders>
        <!--这个输出控制台的配置-->
        <Console name="Console" target="SYSTEM_OUT">
             <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
            <!-- 输出日志的格式-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
        </Console>

        <!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFile" fileName="${backupFilePatch}${fileName}"
            filePattern="${backupFilePatch}$${date:yyyy-MM}/app-%d{yyyyMMddHHmmssSSS}.log.gz">
            <PatternLayout
                pattern="%d{yyyy.MM.dd 'at' HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n" />
            <!-- 日志文件大小 -->
            <SizeBasedTriggeringPolicy size="20MB" />
            <!-- 最多保留文件数 DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
            <DefaultRolloverStrategy max="20"/>
        </RollingFile>
    </appenders>

    <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
    <loggers>
         <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
         <logger name="org.springframework" level="INFO"></logger>
         <logger name="org.mybatis" level="INFO"></logger>
         <root level="trace">  
            <appender-ref ref="RollingFile"/>  
            <appender-ref ref="Console"/>  
         </root>  
    </loggers>
</configuration>
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

使用Log4j 2

具体查看另外一篇博文 Log4j2-Log4j 2介绍及使用

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

...

private static final Logger logger = LogManager.getLogger(XXX.class.getName());

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

启动web项目可以看到如下信息

这里写图片描述


文章来源: artisan.blog.csdn.net,作者:小小工匠,版权归原作者所有,如需转载,请联系作者。

原文链接:artisan.blog.csdn.net/article/details/75151664

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。