SpringBoot 控制台日志的保存配置
情景:SpringBoot项目中需要把控制台日志保存下来。
实现方法:
1.在配置文件application-prod.yml
配置如下:
logging: config: classpath:logback-spring-prod.xml
2.logback-spring-prod.xml
这个文件是记录控制台打印日志保存的路径配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!-- 分级别异步文件日志输出配置 --> <configuration> <!-- 日志级别 --> <property></property> <!-- 日志地址 --> <property></property> <property></property> <property></property> <property></property> <property></property> <!-- 最大保存时间 --> <property></property> <!-- 异步缓冲队列的深度,该值会影响性能.默认值为256 --> <property></property> <!--日志文件名前缀--> <property></property> <appender> <encoder> <pattern>%black(%contextName -) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{60}) - %gray(%msg%n)</pattern> </encoder> </appender> <appender> <filter> <level>DEBUG</level> <onmatch>ACCEPT</onmatch> <onmismatch>DENY</onmismatch> </filter> <file>${logPathDebug}/${name}_debug.log</file> <rollingpolicy> <filenamepattern>${logPathDebug}/${name}_debug.log.%d{yyyy-MM-dd}.%i.log</filenamepattern> <maxhistory>${maxHistory}</maxhistory> <timebasedfilenamingandtriggeringpolicy> <maxfilesize>50MB</maxfilesize> </timebasedfilenamingandtriggeringpolicy> </rollingpolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern> </encoder> </appender> <appender> <filter> <level>INFO</level> <onmatch>ACCEPT</onmatch> <onmismatch>DENY</onmismatch> </filter> <file>${logPathInfo}/${name}_info.log</file> <rollingpolicy> <filenamepattern>${logPathInfo}/${name}_info.log.%d{yyyy-MM-dd}.%i.log</filenamepattern> <maxhistory>${maxHistory}</maxhistory> <timebasedfilenamingandtriggeringpolicy> <maxfilesize>50MB</maxfilesize> </timebasedfilenamingandtriggeringpolicy> </rollingpolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern> </encoder> </appender> <appender> <filter> <level>WARN</level> <onmatch>ACCEPT</onmatch> <onmismatch>DENY</onmismatch> </filter> <file>${logPathWarn}/${name}_warn.log</file> <rollingpolicy> <filenamepattern>${logPathWarn}/${name}_warn.log.%d{yyyy-MM-dd}.%i.log</filenamepattern> <maxhistory>${maxHistory}</maxhistory> <timebasedfilenamingandtriggeringpolicy> <maxfilesize>50MB</maxfilesize> </timebasedfilenamingandtriggeringpolicy> </rollingpolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern> </encoder> </appender> <appender> <filter> <level>ERROR</level> <onmatch>ACCEPT</onmatch> <onmismatch>DENY</onmismatch> </filter> <file>${logPathError}/${name}_error.log</file> <rollingpolicy> <filenamepattern>${logPathError}/${name}_error.log.%d{yyyy-MM-dd}.%i.log</filenamepattern> <maxhistory>${maxHistory}</maxhistory> <timebasedfilenamingandtriggeringpolicy> <maxfilesize>50MB</maxfilesize> </timebasedfilenamingandtriggeringpolicy> </rollingpolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern> </encoder> </appender> <appender> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingthreshold>0</discardingthreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queuesize>${queueSize}</queuesize> <appender-ref></appender-ref> </appender> <appender> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingthreshold>0</discardingthreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queuesize>${queueSize}</queuesize> <appender-ref></appender-ref> </appender> <appender> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingthreshold>0</discardingthreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queuesize>${queueSize}</queuesize> <appender-ref></appender-ref> </appender> <appender> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingthreshold>0</discardingthreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queuesize>${queueSize}</queuesize> <appender-ref></appender-ref> </appender> <root> <!-- appender referenced after it is defined --> <appender-ref></appender-ref> <appender-ref></appender-ref> <appender-ref></appender-ref> <appender-ref></appender-ref> <appender-ref></appender-ref> </root> </configuration>
注意:
<property></property>
中日志存放的路径在/usr/server/shop/logs/下存放。
SpringBoot项目怎么保存服务的运行时日志
这个问题相对很简单,只需要完成两个步骤
配置log4j输出日志的文件
在pom中需要引用lombok依赖,版本跟随你的springboot夫版本即可
<dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <optional>true</optional> </dependency>
StudentContext <property></property>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{76}.%M\(%line\) - %msg%n UTF-8 ${log.path}/student/student.%d{yyyy-MM-dd}.log 60 %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{76}.%M\(%line\) - %msg%n UTF-8 ${log.path}/student/student.warn.%d{yyyy-MM-dd}.log 60 %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{76}.%M\(%line\) - %msg%n UTF-8 WARN ACCEPT DENY ${log.path}/student/student.error.%d{yyyy-MM-dd}.log 60 %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{76}.%M\(%line\) - %msg%n UTF-8 ERROR ACCEPT DENY
log4j输出日志的文件,将其放在resources下即可,注意fileNamePattern这个标签中的东西换成标识你微服务作用的,比如我写的学生管理系统,所以用的是student
在application指定此配置文件的位置
logging: level: com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver: WARN config: classpath:logback-common.xml
以上是SpringBoot项目中怎么保存控制台日志的详细内容。更多信息请关注PHP中文网其他相关文章!

类加载器通过统一的类文件格式、动态加载、双亲委派模型和平台无关的字节码,确保Java程序在不同平台上的一致性和兼容性,实现平台独立性。

Java编译器生成的代码是平台无关的,但最终执行的代码是平台特定的。1.Java源代码编译成平台无关的字节码。2.JVM将字节码转换为特定平台的机器码,确保跨平台运行但性能可能不同。

多线程在现代编程中重要,因为它能提高程序的响应性和资源利用率,并处理复杂的并发任务。JVM通过线程映射、调度机制和同步锁机制,在不同操作系统上确保多线程的一致性和高效性。

Java的平台独立性是指编写的代码可以在任何安装了JVM的平台上运行,无需修改。1)Java源代码编译成字节码,2)字节码由JVM解释执行,3)JVM提供内存管理和垃圾回收功能,确保程序在不同操作系统上运行。

Javaapplicationscanindeedencounterplatform-specificissuesdespitetheJVM'sabstraction.Reasonsinclude:1)Nativecodeandlibraries,2)Operatingsystemdifferences,3)JVMimplementationvariations,and4)Hardwaredependencies.Tomitigatethese,developersshould:1)Conduc

云计算显着提升了Java的平台独立性。 1)Java代码编译为字节码,由JVM在不同操作系统上执行,确保跨平台运行。 2)使用Docker和Kubernetes部署Java应用,提高可移植性和可扩展性。

Java'splatformindependenceallowsdeveloperstowritecodeonceandrunitonanydeviceorOSwithaJVM.Thisisachievedthroughcompilingtobytecode,whichtheJVMinterpretsorcompilesatruntime.ThisfeaturehassignificantlyboostedJava'sadoptionduetocross-platformdeployment,s

容器化技术如Docker增强而非替代Java的平台独立性。1)确保跨环境的一致性,2)管理依赖性,包括特定JVM版本,3)简化部署过程,使Java应用更具适应性和易管理性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版