spring boot 配置 log4j2

版本信息:

spring cloud 版本Greenwich.SR2
spring boot 版本2.1.8.RELEASE

官网文档:

** http://logging.apache.org/log4j/2.x/manual/configuration.html **

以下每个步骤不可缺失

  1. pom.xml配置
    需要排除spring-boot-starter自带的logback依赖,不然日志无法记录在日志文件里

     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter</artifactId>
         <exclusions>
             <!-- 排除自带的logback依赖 -->
             <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>
  2. log4j配置
    新建log4j.xml放在resources目录下
    设置console,InfoLog,ErrorLog的输出配置以及日志目录

    Configuration status="INFO" 设置的是console的输出级别

     <?xml version="1.0" encoding="UTF-8"?>
     <Configuration status="INFO">
         <Appenders>
             <!--添加一个控制台追加器-->
             <Console name="Console" target="SYSTEM_OUT" follow="true">
                 <PatternLayout>
                     <pattern>[%-5p] %d %c - %m%n</pattern>
                 </PatternLayout>
             </Console>
    
             <!-- info log -->
             <RollingFile name="InfoLog" fileName="/opt/logs/scm-warehouse/info.log"
                          filePattern="/opt/logs/scm-warehouse/info-%d{yyyy-MM-dd}.log">
                 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level %class{36}.%M[%L] - %msg%xEx%n"/>
                 <Policies>
                     <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                 </Policies>
                 <Filters>
                     <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
                     <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
                 </Filters>
             </RollingFile>
    
             <!-- error log -->
             <RollingFile name="ErrorLog" fileName="/opt/logs/scm-warehouse/error.log"
                          filePattern="/opt/logs/scm-warehouse/error-%d{yyyy-MM-dd}.log">
                 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%-5level] %class{36}.%M[%L] - %msg%xEx%n"/>
                 <Policies>
                     <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                 </Policies>
                 <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
             </RollingFile>
         </Appenders>
         <Loggers>
             <Root level="info">
                 <AppenderRef ref="Console" />
                 <AppenderRef ref="InfoLog" />
                 <AppenderRef ref="ErrorLog" />
             </Root>
         </Loggers>
     </Configuration>
  3. yml配置,指定配置
     logging:
       config: classpath:log4j.xml
       level:
         root: info
  4. java代码内使用
     import org.slf4j.Logger;
     import org.slf4j.LoggerFactory;
     private static Logger logger = LoggerFactory.getLogger(XXXclass.class);
     logger.info("xxx);

原文地址:https://www.cnblogs.com/cuiyf/p/12120989.html

时间: 2024-08-30 08:54:04

spring boot 配置 log4j2的相关文章

Spring boot 配置 log4j2.xml

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>RELEASE</version> </dependency> <!-- 解析yml--> <dependency> <groupId>com

Spring Boot 使用 Log4j2 &amp; Logback 输出日志到 EKL

文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK 是 Elasticsearch , Logstash, Kibana 的缩写,Elasticsearch 是开源分布式搜索引擎,提供搜集.分析.存储数据等功能,Logstash 主要是用来日志的搜集.分析.过滤日志的工具,Kibana 为 Elasticsearch 提供分析和可视化的 Web 平台

Spring Boot 配置优先级顺序

http://www.cnblogs.com/softidea/p/5759180.html 一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一点不同,配置读取可是一个让人有点伤脑筋的问题. Spring Boot提供了一种优先级配置读取的机制来帮助我们从这种困境中走出来. 常规情况下,我们都知道Spring Boot的配置会从application.pro

[转] Spring Boot配置多个DataSource

[From]  https://www.liaoxuefeng.com/article/001484212576147b1f07dc0ab9147a1a97662a0bd270c20000 Spring Boot配置多个DataSource 廖雪峰 / 编程 / 1-13 10:11 / 阅读: 14041 使用Spring Boot时,默认情况下,配置DataSource非常容易.Spring Boot会自动为我们配置好一个DataSource. 如果在application.yml中指定了s

spring boot配置mybatis和事务管理

spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spring Boot 启动父依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>

IDEA中Spring boot配置热部署无效问题解决方式(转)

IDEA中Spring boot配置热部署无效问题解决方式 2018年01月31日 20:30:59 阅读数:1426 该配置方式属于通过配置devtools实现热部署 只要在pom文件中添加下面代码段即可 <!-- 热部署 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId>

spring boot系列(五)spring boot 配置spring data jpa (查询方法)

接着上面spring boot系列(四)spring boot 配置spring data jpa 保存修改方法继续做查询的测试: 1 创建UserInfo实体类,代码和https://www.cnblogs.com/kxm87/p/9273555.html中的一样. 2 创建数据库操作类相当于dao层,主要创建一个接口UserRepository,继承JpaRepository接口即可.本代码中主要都是自定义方法. 使用findXX 或者countXX(这两个不用编写sql,jpa会自动生成)

Spring Boot 配置加载顺序详解

使用 Spring Boot 会涉及到各种各样的配置,如开发.测试.线上就至少 3 套配置信息了.Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发.测试.线上环境使用不同的配置. 在 Spring Boot 里面,可以使用以下几种方式来加载配置.本章内容基于 Spring Boot 2.0 进行详解. 1.properties文件: 2.YAML文件: 3.系统环境变量: 4.命令行参数: 等等-- 我们可以在 Spring Beans 里面直接使用这些配置文件中加载的值,如:

spring boot 配置全局日期类型转换器

首先自定义一个类型转换器 import org.springframework.core.convert.converter.Converter;import org.springframework.stereotype.Component; import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date; @Componentpublic class MyDataConvert im