基于 Spring Boot 的 SSM 环境整合四:整合 log4j2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xz2001/article/details/83817435

spring boot 最新的版本并不支持log4j,但支持log4j的升级版本 ---- log4j2。

1、修改pom.xml以增加log4j相关配置

首先是修改org.springframework.boot以排除相关的log资源:

            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>

然后加入log4j配置:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>!

修改后完整的pom.xml如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.whowii</groupId>
  <artifactId>website_java4</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <!-- 引入spring-boot-start-parent 以提供dependency management,也就是依赖管理,引入以后在声明其它dependency的时候就不需要version了 -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
  </parent>
  
  <dependencies>
  	<!-- 引入spring-boot-starter-web 以包含spring webmvc和tomcat等web开发的特性 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- log4j2 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    <!-- 日志工具
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-logging-juli</artifactId>
        <version>8.0.23</version>
    </dependency> -->
    <!-- spring mvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>website_java4</finalName>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <!-- 增加main方式启动的配置,若使用maven的spring-boot:run方式启动则不需要此配置 -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
        	<!-- 设置主类入口 -->
        	<mainClass>com.whowii.website4.AppBoot</mainClass>
        	<!-- 设置classpath -->
        	<addClasspath>true</addClasspath>
            <classpathPrefix>lib/</classpathPrefix>
        </configuration>
      </plugin>
    </plugins>
  </build>
  
  <!-- 设置编码 -->
  <properties>
    <spring.version>4.3.8.RELEASE</spring.version>
  	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
</project>

完成后,记得执行下 Maven install。

2、增加 log4j2 配置文件

在 src/main/resources 中增加 log4j2 配置文件“log4j2.xml”,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <Appenders>
    	<!-- 输出控制台 -->
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout charset="UTF-8" pattern="[%d] - [%c] - [%highlight{%level}] - [%method - %L] - [%t] - %msg%n" />
        </Console>

		<!-- 输出到文件
			每当文件超过 size 规定的大小,则此日志会自动存入按年份-月份建立的文件夹下面并进行压缩 -->
        <File name="FILE" 
        		fileName="logs/sys.log"
               	filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout pattern="[%d] - [%c] - [%highlight{%level}] - [%l] - [%t] - %msg%n" />
            <!-- 日志文件最大50M -->
            <SizeBasedTriggeringPolicy size="50MB"/>
            <!-- 同一文件夹下最多20个文件(默认7个) -->
            <DefaultRolloverStrategy max="20"/>
        </File>
    </Appenders>

    <Loggers>
        <root level="info">
            <AppenderRef ref="CONSOLE" />
            <AppenderRef ref="FILE" />
        </root>
    </Loggers>
</configuration>

3、修改 spring boot 配置文件

修改 application.properties 追加如下内容:

logging.config= classpath:log4j2.xml

完成后的  application.properties  内容如下:

# spring mvc 配置(视图解析器)
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp

# log4j2 配置
logging.config= classpath:log4j2.xml

4、使用 log4j2

修改DemoController以增加日志输出,完成后的DemoController如下:

package com.whowii.website4.admin.controller;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Controller
@RequestMapping("/demo")
public class DemoController {
	private static final Logger logger = LogManager.getLogger(DemoController.class);

	@GetMapping("/index")
	public String index() {
		logger.trace("追踪,是最低的日志级别,相当于追踪程序的执行,一般不怎么使用");
		logger.debug("一般在开发中,都将其设置为最低的日志级别.");
		logger.info("输出感兴趣的信息,我在开发中一般都会用info去输出.");
		logger.warn("警告.有些时候,虽然程序不会报错,但是还是需要告诉程序员的.");
		logger.error("错误,这个在开发中也挺常用的");

		return "demo-index";
	}
}

5、测试结果

启动程序(具体操作参见前文),访问“http://127.0.0.1:8080/demo/index”,查看两个输出:

1)、MyEclispe控制台内容如下:

扫描二维码关注公众号,回复: 4964620 查看本文章

2)、刷新项目目录,查看多了个 logs 文件夹:

打开其中的 sys.log 内容如下:

猜你喜欢

转载自blog.csdn.net/xz2001/article/details/83817435