问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

spring boot怎么配日志

发布网友 发布时间:2022-04-10 20:01

我来回答

2个回答

热心网友 时间:2022-04-10 21:30

Spring Boot默认是使用logback

之前在Spring中使用logback的时候是需要加入slf4j和logback的依赖的

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.1.7</version>
</dependency>

在Spring Boot中默认已经引入了相关的jar包,所以就不需要额外手动引入了~

logback是一款优秀的日志框架,本文就介绍logback

spring boot默认会加载classpath:logback-spring.xml或者classpath:logback-spring.groovy

当然,日志文件的名称也可以采用自定义的方式,此时需要在properties文件中加入以下配置::

logging.config=classpath:logback-winner.xml

注意:不要使用logback这个来命名,否则spring boot将不能完全实例化

项目结构:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 文件输出格式 -->
<property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
<!-- test文件路径 -->
<property name="TEST_FILE_PATH" value="/opt/winner/logs"/>
<!-- pro文件路径 -->
<property name="PRO_FILE_PATH" value="/opt/winner_0715/logs"/>

<!-- 开发环境 -->
<springProfile name="dev">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</springProfile>

<!-- 测试环境 -->
<springProfile name="test">

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>

<!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出 -->
<appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--不能有这项配置!!!!!-->
<!--<Encoding>UTF-8</Encoding>-->
<File>${TEST_FILE_PATH}/guide.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${TEST_FILE_PATH}/guide.%d{yyyy-MM-dd}-%i.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
<TimeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>10KB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
</appender>
<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="TEST-FILE"/>
</root>
</springProfile>

<!-- 生产环境 -->
<springProfile name="prd">
<!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出 -->
<appender name="PROD_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<Encoding>UTF-8</Encoding>-->
<File>${PRO_FILE_PATH}/guide.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${PRO_FILE_PATH}/guide.%d{yyyy-MM-dd}-%i.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
<TimeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>50MB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
</appender>
<root level="INFO">
<appender-ref ref="PROD_FILE"/>
</root>
</springProfile>
</configuration>

注意,这里的springProfile 的名字与properties文件各个环境的名字要保持一致~

下面简单说一下File和FileNamePattern两个标签的含义:

<File>${TEST_FILE_PATH}/guide.log</File>
<FileNamePattern>${TEST_FILE_PATH}/guide.%d{yyyy-MM-dd}-%i.log</FileNamePattern>

这两项的配置的意思是:

日志首先写入到文件中,当这个文件的大小超过设置的MaxFileSize时,就会把这个文件分割,分割后的文件命名按照来命名,为了方便,我上面将MaxFileSize设置为10KB,实际效果如下:

PS:被其中的一项配置折磨到死:

<Encoding>UTF-8</Encoding>

没错,就是它,在Spring中配置这一项是没错的,但是在Spring Boot中配置这一项不行,原因暂时未知

热心网友 时间:2022-04-10 22:48

这里有一篇文章关于

Spring Boot的日志配置和处理

写的非常详细,推荐看一下!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
"多难兴邦"这个词,让我们懂得了什么? uc怎么进入阅读模式 进入阅读模式方法介绍 uc怎么进入小说阅读模式 uc浏览器设置阅读模式-uc浏览器设置阅读模式方法 uc电脑阅读模式怎么设置电脑上UC浏览器的阅读模式怎么打开 微信怎么判断对方把你拉黑并且删除了,还是只是拉黑了? 公司诉讼由哪个法院管辖?公司诉讼管辖确定的理论依据? 笔记本电脑开机无法进入系统笔记本电脑开机后无法进入系统 从深圳到乌镇玩三天,花销最少是多少?越少越好,如果有个计划就更好乐 马上快过年放假了,第一次去见岳父,送茅台好还是五粮液好? 有一首歌民谣 里面有几句歌词是 虽然我写了很多歌,可哪里比的上那支童谣 还有什么妈妈再给我唱之歌吧 乡村永怀创编故事作文 “维以不永殇”是什么意思? 最爱张国荣哪首歌的歌词 公安技侦之歌歌词 刘德华张学友率群星合唱《夕阳之歌》,缅怀永远的天后梅艳芳! 急求!!东方神起的中文歌的歌词 请问这首歌名是什么? 带有永、怀、如、玉、光的古诗词 这是什么歌曲啊? 有知道伊利之歌《真心永在》歌词的吗 现在谢氏有多少人 昆山仁宝听说是黑厂,有多黑 2021年10月16日昆山仁宝15加15的小时工是真的吗 仁宝电子科技(昆山)有限公司,无论自离或者辞职。可以进几次? 昆山仁宝人事部电话号码是多少? 昆山仁宝黑工厂 昆山仁宝职员自离 在昆山仁宝面试招募中心~有纹身被刷下来了~会拉黑名单么…… 在仁宝正常离职三次就进黑名单了吗? 请问&lt;&lt;诗经&gt;&gt;中’鼓钟将将,淮水汤汤,忧心且伤.淑人君子,怀允不忘.’是什么意思? 物理中的双星系统有哪些公式 高中物理的双星问题怎么解决 物理中的双星系统有哪些公式? 高中的物理问题双星系统具有什么特点三星 高中物理必修二 双星系统中为什么角速度相同。如果双星换成两个点电荷,角速度也相同吗。 高中物理 双星系统 这个是怎么推的 高中物理必修二双星问题 高中物理,双星系统中,两星做匀速圆周运动的向心力大小为什么相等? 物理的双星系统可以怎样求解 高中物理必修2双星问题。 高中物理双星系统的成因,求详细解释 高中物理 双星和三星系统 物理,双星系统是什么?两个质量相同的天体可以组成吗?相对静止怎么产生向心力来平衡引力? 高中物理题(双星问题) 小米,木耳,山药一起煲可以吗 关于高中物理的双星系统问题 关于高中物理的双星问题, 高一的“双星系统”是怎么回事? 木耳煮小米粥好吗