首页 > 数据库 >springboot+mybatis+log4j日志sql输出和文件输出

springboot+mybatis+log4j日志sql输出和文件输出

时间:2022-12-09 12:31:22浏览次数:38  
标签:输出 LOG spring dd boot yyyy FILE sql springboot


pom引入依赖:

<dependency>
<!-- 排除 spring-boot-starter-logging -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 其他依赖省略 -->
<!-- 引入 Log4j2 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>


<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

定义log4j.xml配置文件

此处配置名为:Log4j2-spring.xml

springboot+mybatis+log4j日志sql输出和文件输出_ci

<?xml versinotallow="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- mnotallow=“N” 自动间隔 N 秒检测配置文件是否修改,有修改则自动重新加载配置 可以不设置 -->
<!-- status="warn" Log4j2 本身日志输出级别 可以不设置 -->
<configuration mnotallow="30" status="warn">
<!-- 变量配置 -->
<Properties>
<!-- 日志输出格式 -->
<property name="LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level} [%t] %highlight{%c{1.}.%M(%L)}: %msg%n"/>
<!-- 日志输出到文件的路径和文件名 根据项目情况更改 value 值 -->
<property name="LOG_FILE_PATH" value="logger"/>
<property name="LOG_FILE_NAME" value="log4j2"/>
</Properties>
<!-- 定义 appenders -->
<appenders>
<!-- console 设定 控制台输出 -->
<console name="Console" target="SYSTEM_OUT">
<!-- 指定 输出格式 默认 %msg%n -->
<PatternLayout pattern="${LOG_PATTERN}"/>
<!-- notallow="ACCEPT" 只输出 level 级别及级别优先级更高的 Log , notallow="DENY" 其他拒绝输出 -->
<ThresholdFilter level="debug" notallow="ACCEPT" notallow="DENY"/>
</console>
<!-- 将日志全部输出到 test.log,append="true" 表示重新运行时不删除日志 -->
<File name="FileLog" fileName="${LOG_FILE_PATH}/test.log" append="true">
<PatternLayout pattern="${LOG_PATTERN}"/>
</File>
<!-- RollingFile 滚动输出日志到文件 -->
<!-- 输出 warn 及更高优先级的 log 到 LOG_FILE_PATH 目录下的 warn.log 文件 -->
<!-- filePattern 指定 warn.log 文件大于 size 大小时候文件处理规则, %d 日期;%i 编号(最大为下方设置的 max 值) -->
<RollingFile name="RollingFileWarn" fileName="${LOG_FILE_PATH}/warn.log"
filePattern="${LOG_FILE_PATH}/%d{yyyy-MM-dd}/WARN_${LOG_FILE_NAME}_%i.log.gz">
<PatternLayout pattern="${LOG_PATTERN}" />
<ThresholdFilter level="warn" notallow="ACCEPT" notallow="DENY"/>
<Policies>
<!-- interval="N" ,N小时滚动一次,默认是1 hour-->
<TimeBasedTriggeringPolicy interval="1"/>
<!-- size="5MB" 指定日志输出文件大小,若大小超过size,则日志会自动存入按 filePattern 规则建立的文件夹下面并进行压缩 -->
<SizeBasedTriggeringPolicy size="5MB"/>
</Policies>
<!-- DefaultRolloverStrategy 不设置的情况下,默认为最多同一文件夹下7个 filePattern 规矩建立的压缩文件,多于 max 的值将用新的文件覆盖就的压缩文件 -->
<DefaultRolloverStrategy max="10"/>
</RollingFile>
<!-- 输出 error 及更高优先级的 log 到 LOG_FILE_PATH 目录下的 error.log 文件 -->
<RollingFile name="RollingFileError" fileName="${LOG_FILE_PATH}/error.log"
filePattern="${LOG_FILE_PATH}/%d{yyyy-MM-dd}/ERROR_${LOG_FILE_NAME}_%i.log.gz">
<PatternLayout pattern="${LOG_PATTERN}" />
<ThresholdFilter level="error" notallow="ACCEPT" notallow="DENY"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="5MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
<!-- 输出 info 及更高优先级的 log 到 LOG_FILE_PATH 目录下的 info.log 文件 -->
<RollingFile name="RollingFileInfo" fileName="${LOG_FILE_PATH}/info.log"
filePattern="${LOG_FILE_PATH}/%d{yyyy-MM-dd}/Info_${LOG_FILE_NAME}_%i.log.gz">
<PatternLayout pattern="${LOG_PATTERN}"/>
<ThresholdFilter level="info" notallow="ACCEPT" notallow="DENY"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="5MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</appenders>

<!-- 在 Loggers 引入 Appender 使其生效 -->
<loggers>
<!-- Logger 节点用来单独指定 package 包下的 class 的日志输出格式等信息 -->
<logger name="org.springframework" level="info" additivity="false">
<!-- 指定 org.springframework 的 level 及更高优先级的日志只在控制台输出 -->
<!-- additivity="false" 只在自定义的Appender中进行输出 -->
<AppenderRef ref="Console"/>
</logger >

<Root level="info">
<!-- 用来指定项目的 Root 日志规则,如果没有单独指定Logger,那么就会默认使用 Root 日志输出 -->
<!-- AppenderRef 用来指定日志输出到哪个 Appender -->
<AppenderRef ref="Console"/>
<AppenderRef ref="FileLog"/>
<AppenderRef ref="RollingFileInfo"/>
<AppenderRef ref="RollingFileWarn"/>
<AppenderRef ref="RollingFileError"/>
</Root>
</loggers>
</configuration>

application.yml文件配置:

springboot+mybatis+log4j日志sql输出和文件输出_ci_02


logging:
config: classpath:Log4j2-spring.xml
pattern:
console: "%d-%msg%n"
level:
root: info

标签:输出,LOG,spring,dd,boot,yyyy,FILE,sql,springboot
From: https://blog.51cto.com/u_15907536/5924885

相关文章

  • mysql8数据类型汇总
    数据类型之enum在Mysql中的Enum数据类型补充:enum类型NOTNULL的时候,默认值是下标为1的值['男','女']的默认值是'男'......
  • Hello,SpringBoot
    什么是SpringBoot一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置,youcan"justrun",能迅速的开发web应用,几行代码开发......
  • ubuntu20.04下安装mysql5.7后,允许远程登录
    1、在mysql的配置文件中设置bind-address=0.0.0.0 2、在databasemysql中设置root用户的host为% 安装deb后使用apt-cachepolicymysql-server查看......
  • mac Django 连接mysql
    目录macdjango2.2正确连接mysql方式问题描述macdjango2.2正确连接mysql方式macDjango电脑连接mysql时候会出现一些错误,因为版本问题。以下操作Django2.2.22亲测有效......
  • 基于Python+Django+Vue+MYSQL的社团管理系统
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • 一键部署MySQL8+keepalived双主热备高可用
    概述本次的文章会格外的长,网上大多的配置流程已经不可使用,本篇文章可以称为保姆级教程,而且通过shell脚本大大减少了部署mysql主从,双主的工作量。如上图,VIP地址为192.168......
  • SpringBoot内置tomcat启动过程及原理
    1背景SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,同时也提供了很多便捷的功能,比如内置tomcat就是其中一项,他让我们省去了搭建tomcat容器,生成war,部署,......
  • 【MySQL】将查询结果导出到一个文件
    (1)SQL示例如下,要将如下的SQL查询结果导出到一个txt文件,便于研发做结果内容的核对selectps_partkey,sum(ps_supplycost*ps_availqty)asvaluefromparts......
  • MySQL主从复制与读写分离
    一、案例概述在企业应用中,成熟的业务通常数据量都比较大单台mysql在安全性、高可用性和高并发方面都无法满足实际的需求配置多台主从数据库服务器以实现读写分离二、案例......
  • 数据分析常见SQL面试题汇总
    文章目录​​在互联网公司实习中使用HiveSQL的一些体会和注意点​​​​<1>SQL——计算次日留存率​​​​<2>ntile的使用​​​​<3>在不能使用ORDRBY的情况下解决排......