spring boot log4j2配置

【传送门】:log4j官网配置文件详解

1. 排除 spring boot 自带的  spring-boot-starter-logging 依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <!-- remove log4j -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

2. 添加log4j依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <!--如果配置文件为yaml格式,则还需添加如下依赖-->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
            <version>2.9.7</version>
        </dependency>

3. log4j.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- status log4j2 内部日志级别 -->
<configuration status="INFO">

    <!-- 全局参数 -->
    <Properties>
        <Property name="pattern">[%p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %l : %m%n</Property>
        <Property name="logHome">logs</Property>
        <Property name="displayName">monitor-server</Property>
    </Properties>

    <Appenders>

        <Console name="console" target="SYSTEM_OUT" follow="true">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
        </Console>

        <!-- 文件 每次运行程序会自动清空,由append属性决定 -->
        <File name="error" fileName="${loghome}/${displayName}_error.log" append="false">
            <!-- 指定error 级别的日志 -->
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
        </File>

        <!-- 滚动文件 -->
        <RollingFile name="rollingFile" fileName="${logHome}/${displayName}.log"
                     filePattern="${logHome}/${displayName}_%d{yyyy-MM-dd}.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <!-- 按大小划分 -->
            <Policies>
                <!-- 每隔1天生成一个日志-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <!-- 每隔10MB生成一个日志-->
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="20"/>
        </RollingFile>

    </Appenders>

    <Loggers>

        <Logger name="org.springframework" level="WARN" additivity="false">
            <AppenderRef ref="console"/>
        </Logger>

        <Logger name="com.skd.server" level="info" additivity="false">
            <AppenderRef ref="console"></AppenderRef>
            <AppenderRef ref="error"></AppenderRef>
            <AppenderRef ref="rollingFile"></AppenderRef>
        </Logger>

        <!--日志信息输出的最低级别-->
        <Root level="debug">
        </Root>

    </Loggers>

</configuration>

4. 日志格式配置

PatternLayout:

  • %m 输出代码中指定的消息;
  • %M 输出打印该条日志的方法名;
  • %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;
  • %r 输出自应用启动到输出该log信息耗费的毫秒数;
  • %c 输出所属的类目,通常就是所在类的全名;
  • %t 输出产生该日志事件的线程名;
  • %n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;
  • %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;
  • %l 输出日志事件的发生位置,及在代码中的行数;

原文地址:https://www.cnblogs.com/virgosnail/p/10155549.html

时间: 2024-10-13 23:04:14

spring boot log4j2配置的相关文章

Spring Boot常用配置

概述 本文主要写了下Spring Boot的一些常用配置. Spring Boot基本配置 入口类: Spring Boot通常有一个名为*Application的入口类,入口类里面有一个main方法,这个main方法其实就是一个标准的Java应用的入口方法.在main方法中使用SpringApplication.run(*Application.class, args),启动Spring Boot应用项目. @SpringBootApplication: @SpringBootApplicat

Spring Boot日志配置 (二)

支持日志框架:Java Util Logging, Log4J2 and Logback,默认是使用logback 配置方式:默认配置文件配置和引用外部配置文件配置 1.默认配置文件配置 不建议使用:不够灵活,对log4j2等不够友好 # 日志文件名,比如:roncoo.log,或者是 /var/log/roncoo.log logging.file=roncoo.log # 日志级别配置,比如: logging.level.org.springframework=DEBUG logging.l

Spring Boot log4j2 configuration example

spring boot 默认log用的是 LogBack. 1. Log4j2 Maven Dependency pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> </paren

玩转spring boot——properties配置

前言 在以往的java开发中,程序员最怕大量的配置,是因为配置一多就不好统一管理,经常出现找不到配置的情况.而项目中,从开发测试环境到生产环境,往往需要切换不同的配置,如测试数据库连接换成生产数据库连接,若有一处配错或遗漏,就会带来不可挽回的损失.正因为这样,spring boot给出了非常理想的解决方案——application.properties.见application-properties的官方文档:http://docs.spring.io/spring-boot/docs/curr

Spring Boot 属性配置和使用

spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 系列 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Boot 静态资源处理 Spring Boot - 配置排序依赖技巧 Spring Boot - DevTools 介绍 Spring Boot 支持多种外部配置方式 这些方式优先级如下: 命令行参数 来

Spring Boot 属性配置和使用(转)

Spring Boot 属性配置和使用 Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 入门 请看:http://blog.csdn.net/isea533/article/details/50278205 Spring Boot 支持多种外部配置方式 这些方式优先级如下: 命令行参数 来自java:comp/env的JNDI属性 Java系统属性(System.getPropert

Spring Boot 揭秘与实战 附录 - Spring Boot 公共配置

Spring Boot 公共配置,配置 application.properties/application.yml 文件中. 摘自:http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html # =================================================================== # COMMON SPRING

Spring Boot自动配置原理(转)

第3章 Spring Boot自动配置原理 3.1 SpringBoot的核心组件模块 首先,我们来简单统计一下SpringBoot核心工程的源码java文件数量: 我们cd到spring-boot-autoconfigure工程根目录下.执行 $ tree | grep -c .java$ 模块 java文件数 spring-boot 551 spring-boot-actuator 423 spring-boot-autoconfigure 783 spring-boot-devtools

4、Spring Boot 自动配置原理

1.4 Spring Boot 自动配置原理 简介 spring boot自动配置功能可以根据不同情况来决定spring配置应该用哪个,不应该用哪个,举个例子: Spring的JdbcTemplate是不是在Classpath里面?如果是,并且DataSource也存在,就自动配置一个JdbcTemplate的Bean Thymeleaf是不是在Classpath里面?如果是,则自动配置Thymeleaf的模板解析器.视图解析器.模板引擎 那个这个是怎么实现的呢?原因就在于它利用了Spring的