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

来源:互联网 发布:游戏编程软件 编辑:程序博客网 时间:2024/06/04 23:26

  • Log4j 2概述
  • 为什么要使用Log4j 2
  • Spring中配置Log4j 2
    • 添加Maven依赖
    • 配置webxml
    • 配置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>

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 -->

配置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>

使用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());

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

这里写图片描述


原创粉丝点击