zoukankan      html  css  js  c++  java
  • SpringBoot集成Log4j2

    1.简述

      SpringBoot日志系统默认使用的是Logback,灵活性不高,很多时候我们需要使用Log4j或者Log4j2。

    2.Log4j2集成说明

    (1)添加Log4j2依赖

      使用Log4j2,需要从中去掉spring-boot-starter-web依赖,同时显示声明使用Log4j2的依赖jar包,具体如下

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    View Code

    (2)Log4j2.xml配置

      resources文件夹下创建log4j2.xml文件,文件内容如下

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration status="info">
    <Appenders>
        <!--将日志在控制台输出-->
        <Console name="Console" target="SYSTEM_OUT">
            <!--日志输出的格式-->
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n"/>
        </Console>
        <!--将日志输出到文件中,fileName:文件的路径和名称,filePattern:采用某种输出日志的规则,日志的路径名和日志文件名称格式-->
        <RollingFile name="infofile" fileName="logs/info.log" filePattern="logs/info.log.%d{yyyy-MM-dd}">
            <PatternLayout>
                <Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
            </PatternLayout>
            <!--过滤日志级别,确保该文件中只能保存INFO和WARN级别的日志-->
            <Filters>
                <ThresholdFilter level="INFO"/>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <!--日志文件产生的策略,每隔一天产生一个新的日志文件-->
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
        </RollingFile>
    
        <RollingFile name="errorfile" fileName="logs/error.log" filePattern="logs/error.log.%d{yyyy-MM-dd}">
            <PatternLayout>
                <Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
        </RollingFile>
    </Appenders>
    <loggers>
        <Logger name="info" level="INFO">
            <AppenderRef ref="infofile" />
        </Logger>
        <Logger name="error" level="ERROR">
            <AppenderRef ref="errorfile" />
        </Logger>
        <Root>
            <AppenderRef ref="Console"/>
        </Root>
    </loggers>
    </configuration>
    View Code

      自定义文件名的需要在application.[yml、properties]文件中指定配置文件名,示例如下

    logging:
      config: classpath:log4j2.xml
    View Code
  • 相关阅读:
    使用牛顿迭代法和二分法求解一个数的平方根(python语言实现)
    厄拉多塞筛法和普通方法求素数表(python实现)
    使用辗转相除法求两个数的最大公因数(python实现)
    我在博客园第一篇博文
    Linux安装maven
    MyBatis基础入门
    Maven的使用入门
    nginx的简单使用和使用nginx在windows上搭建tomcat集群
    后端程序员如何玩转AJAX
    Servlet3.0文件上传
  • 原文地址:https://www.cnblogs.com/bl123/p/14518962.html
Copyright © 2011-2022 走看看