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
  • 相关阅读:
    Evaluate Reverse Polish Notation(逆波兰表达式)
    PostreSQL linux添加psql 命令
    C#用文件流读取cvs内容并返回DataTable,并把第一行设为列名
    鹅鹅鹅饿饿
    编译器和解释器
    delphi之多线程编程
    Arduino 板子 COM 接口找不到设备
    JS事件冒泡
    vi编辑器的使用(2)
    vi编辑器的使用(1)
  • 原文地址:https://www.cnblogs.com/bl123/p/14518962.html
Copyright © 2011-2022 走看看