springboot 项目日志配置文件详解

spring boot  项目指定 日志配置文件

在Spring Boot项目中,可以通过在application.propertiesapplication.yml文件中指定日志配置文件来配置日志。

1. 使用application.properties文件:

application.properties中,您可以使用以下属性来指定日志配置文件:

logging.config=classpath:custom-logback.xml

上述配置将告诉Spring Boot使用位于类路径下的custom-logback.xml文件作为日志配置文件。您可以将文件路径更改为您自己的日志配置文件的路径。

2. 使用application.yml文件:

application.yml中,您可以使用以下属性来指定日志配置文件:

logging:config: classpath:custom-logback.xml

与上述application.properties的配置相同,此配置将告诉Spring Boot使用位于类路径下的custom-logback.xml文件作为日志配置文件。

请确保日志配置文件位于类路径下,或者根据需要指定正确的文件路径。

使用上述配置,您可以在Spring Boot项目中指定自定义的日志配置文件,以覆盖默认的日志配置。

logback-spring.xml 和 logback.xml 区别

方案一

在使用 Logback 作为日志框架时,logback-spring.xml 和 logback.xml 是两个常用的配置文件,它们在加载和处理配置方面略有不同。

  1. logback-spring.xml

    • logback-spring.xml 是专为 Spring Boot 项目准备的 Logback 配置文件。
    • 当使用 Spring Boot 时,如果存在 logback-spring.xml 文件,Spring Boot 会自动加载并替换默认的 Logback 配置。
    • logback-spring.xml 支持 Spring Boot 的特性和扩展,例如可以使用 Spring 的属性占位符 ${} 进行动态配置。
    • Spring Boot 在加载 logback-spring.xml 时,还会进行日志级别的自动配置,根据应用程序的 application.properties 或 application.yml 中的 logging.level.* 配置来设置日志级别。
    • logback-spring.xml 的加载顺序优先于 logback.xml
  2. logback.xml

    • logback.xml 是通用的 Logback 配置文件,适用于非 Spring Boot 项目或不需要 Spring Boot 特性的项目。
    • 如果存在 logback.xml 文件,它会被加载和使用,而忽略任何 logback-spring.xml
    • logback.xml 配置中无法使用 Spring 的属性占位符,因为它不会经过 Spring 的处理。
    • logback.xml 需要手动配置日志级别和其他相关设置,不会自动受到应用程序的其他配置文件影响。

总结:

  • 如果使用 Spring Boot 项目,建议使用 logback-spring.xml 配置文件,以便享受 Spring Boot 的自动配置和属性占位符的特性。
  • 对于非 Spring Boot 项目或不需要 Spring Boot 特性的项目,使用 logback.xml 配置文件即可。

需要注意的是,无论是 logback-spring.xml 还是 logback.xml,它们的配置语法和元素都是相同的,可以根据具体需求进行配置。

方案二

logback-spring.xml 和 logback.xml 是用于配置 Logback 日志框架的文件,它们在使用方式和加载机制上有一些区别。

logback-spring.xml 是针对 Spring Framework 应用程序特定的 Logback 配置文件,它与 Spring 的集成提供了一些额外的功能和特性。当存在 logback-spring.xml 文件时,Spring Boot 应用程序会优先加载它。这个特定的文件名是为了利用 Spring Boot 的自动配置机制,可以通过在 logback-spring.xml 中使用 Spring 属性占位符,从应用程序的 application.properties 或 application.yml 文件中动态配置日志。这意味着您可以在运行时通过 Spring 的属性配置来更改 Logback 日志的行为。

相比之下,logback.xml 是通用的 Logback 配置文件,用于非 Spring 应用程序或不需要与 Spring 集成的应用程序。当不存在 logback-spring.xml 文件时,Logback 会尝试加载 logback.xml 文件。这个文件通常用于独立的 Java 应用程序或其他非 Spring 环境下的应用程序。

如果您使用的是 Spring Boot 框架,建议优先使用 logback-spring.xml 文件来配置 Logback,以获得更好的集成和动态配置的能力。如果您不使用 Spring Boot,或者不需要与 Spring 集成,那么可以使用 logback.xml 来配置 Logback。

spring boot 项目日志配置文件指定日志输入目录

在Spring Boot项目中,要指定日志文件的输出目录,您可以使用以下方法:

1. 使用application.properties配置文件:

application.properties中,您可以使用以下属性来指定日志文件的输出目录:

logging.file.path=/path/to/logs

/path/to/logs替换为您希望日志文件输出的目录路径。

2. 使用application.yml配置文件:

application.yml中,您可以使用以下属性来指定日志文件的输出目录:

logging:file:path: /path/to/logs

同样,将/path/to/logs替换为您希望日志文件输出的目录路径。

请确保指定的目录具有适当的权限,以便应用程序能够在该目录中创建和写入日志文件。

通过上述配置,您可以将日志文件输出到指定的目录,而不是默认的日志目录。

日志文件配置案例

案例一

配置文件 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"><contextName>logback</contextName><!--输出到控制台--><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!--按天生成日志--><appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender"><Prudent>true</Prudent><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log</FileNamePattern></rollingPolicy><layout class="ch.qos.logback.classic.PatternLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss} -%msg%n</Pattern></layout></appender><!-- logger节点,可选节点,作用是指明具体的包或类的日志输出级别,以及要使用的<appender>(可以把<appender>理解为一个日志模板)。addtivity:非必写属性,是否向上级loger传递打印信息。默认是true--><logger name="com.leshangju.project" additivity="false"><appender-ref ref="console"/><appender-ref ref="logFile"/></logger><root level="info"><appender-ref ref="console"/><appender-ref ref="logFile"/></root></configuration>

日志生成目录展示

案例二

配置文件 logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false"><springProperty scope="context" name="logPath" source="gjsp.logs.path" defaultValue="${user.home}/data/app/cars-gjsp/logs"/><property name="APP_NAME" value="cars-gjsp"/><property name="LOG_HOME" value="data/app/gjsp/logs/${APP_NAME}"/><springProfile name="prod"><property name="LOG_HOME" value="/${logPath}/${APP_NAME}"/></springProfile><include resource="org/springframework/boot/logging/logback/defaults.xml"/><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><layout class="ch.qos.logback.classic.PatternLayout"><pattern>${CONSOLE_LOG_PATTERN}</pattern></layout></appender><appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/${APP_NAME}.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/${APP_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern><MaxHistory>30</MaxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern></layout></appender><logger name="org.springframework" level="info" additivity="false"/><logger name="io.swagger" level="OFF"/><logger name="springfox.documentation" level="OFF"/><logger name="io.lettuce" level="info" additivity="false"/><logger name="io.netty" level="info" additivity="false"/><logger name="org.apache.http.wire" level="info" additivity="false"/><logger name="jdbc.connection" level="OFF"/><logger name="jdbc.resultset" level="OFF"/><logger name="jdbc.resultsettable" level="OFF"/><logger name="jdbc.audit" level="OFF"/><logger name="jdbc.sqltiming" level="INFO"/><logger name="jdbc.sqlonly" level="OFF"/><logger name="org.hibernate.SQL" additivity="false"><level value="info"/><appender-ref ref="console"/><appender-ref ref="appLogAppender"/></logger><!-- 2. 输出SQL 的参数到控制台和文件--><logger name="org.hibernate.type.descriptor.sql.BasicBinder" additivity="false"><level value="info"/><appender-ref ref="console"/><appender-ref ref="appLogAppender"/></logger><root level="info"><appender-ref ref="console"/><appender-ref ref="appLogAppender"/></root>
</configuration>

 日志生成目录展示

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/44959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ARM】Day4 点亮LED灯

1. 思维导图 2. 自己编写代码实现三盏灯点亮 .text .global _start _start: /**********LED1&#xff0c;LED2,LED3点灯:PE10,PF10,PE8**************/ RCC_INIT:使能GPIOE组/GPIOF组控制器,通过RXCC_MP_AHB4ENSETR设置第[5:4]位写1,地址:0x50000A28[5:4]1ldr r0,0x50000A28 …

01_Redis单线程与多线程

01——Redis单线程与多线程 一、Redis是单线程还是多线程 在谈Redis的单线程或多线程时&#xff0c;需要根据版本来区分。 在redis 3.x之前&#xff0c;redis是单线程的从redis 4.x开始&#xff0c;redis引入多线程。处理客户端请求时&#xff0c;使用单线程&#xff1b;在异…

B-树和B+树的区别

B-树和B树的区别 一、B-tree数据存储 在下图中 P 代表的是指针&#xff0c;指向的是下一个磁盘块。在第一个节点中的 16、24 就是代表我们的 key 值是什么。date 就是这个 key 值对应的这一行记录是什么。 假设寻找 key 为 33 的这条记录&#xff0c;33 在 16 和 34 中间&am…

QT TLS initialization failed问题(已解决) QT基础入门【网络编程】openssl

问题: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed 这个问题的出现主要是使用了https请求:HTTPS ≈ HTTP + SSL,即有了加密层的HTTP 所以Qt 组件库需要OpenSSL dll 文件支持HTTPS 解决: 1.加入以下两行代码获取QT是否支持opensll以…

如何在出差期间远程访问企业ERP系统?内网穿透解决您的难题!

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 概述 ERP系统对于企业来说重要性不言而喻&#xff0c;不管是财务、生产、销售还是采购&#xff0c;都需要用到ERP系统来协助。…

SharkTeam:Worldcoin运营数据及业务安全分析

Worldcoin的白皮书中声明&#xff0c;Worldcoin旨在构建一个连接全球人类的新型数字经济系统&#xff0c;由OpenAI创始人Sam Altman于2020年发起。通过区块链技术在Web3世界中实现更加公平、开放和包容的经济体系&#xff0c;并将所有权赋予每个人。并且希望让全世界每一个人都…

Web3和去中心化:互联网的下一个演化阶段

文章目录 Web3和去中心化的定义Web3&#xff1a;去中心化&#xff1a; 为什么Web3和去中心化如此重要&#xff1f;数据隐私和安全&#xff1a;去中心化的创新&#xff1a;去除中间商&#xff1a; Web3和去中心化的应用领域去中心化金融&#xff08;DeFi&#xff09;&#xff1a…

Linux驱动开发之点亮三盏小灯

头文件 #ifndef __HEAD_H__ #define __HEAD_H__//LED1和LED3的硬件地址 #define PHY_LED1_MODER 0x50006000 #define PHY_LED1_ODR 0x50006014 #define PHY_LED1_RCC 0x50000A28 //LED2的硬件地址 #define PHY_LED2_MODER 0x50007000 #define PHY_LED2_ODR 0x50007014 #define…

机器学习深度学习——NLP实战(情感分析模型——数据集)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——BERT&#xff08;来自transformer的双向编码器表示&#xff09; &#x1f4da;订阅专栏&#xff1a;机器…

Unity如何控制声音大小(包括静音功能)

一&#xff1a;UGUI制作 1. 首先在【层级】下面创建UI里面的Slider组件。设置好它对应的宽度和高度。 2.调整Slider滑动条的填充颜色。一般声音颜色我黄色&#xff0c;所以我们也调成黄色。 我们尝试滑动Slider里面的value。 a.滑动前。 b.滑动一半。 c.滑动完。 从以上滑动va…

DeFINE:用于神经序列建模的深度分解输入令牌嵌入

一、说明 DeFINE&#xff0c;是华盛顿大学和艾伦人工智能开发的自然语言处理工具&#xff0c;可以处理的范围是&#xff1a;NLP、语言模型、LM、神经机器翻译、NMT、变压器、变压器-XL等&#xff1b;本文对token-bedding进行生成。 借助DeFINE&#xff0c;Transformer-XL可以在…

汽车级36V、4A同步降压转换器MAX20404AFOD/VY、MAX20404AFOC/VY、MAX20404AFOA/VY开关稳压器

MAX20404是小型同步降压转换器&#xff0c;集成了高端和低端开关。这些IC均设计为可在3V到36V的宽输入电压范围内提供高达4A的电流。电压质量可以通过观察PGOOD信号来监测。该器件可以在99%的占空比下运行&#xff0c;非常适合汽车和工业应用。 MAX20404提供可编程输出电压或5…

Debian查询硬件状态

很早以前写过一个查询树霉派硬件状态的文章&#xff0c;用是Python写的一个小程序。里面用到了vcgencmd这个测温度的内部命令&#xff0c;但这个命令在debian里面没有&#xff0c;debian里只有lm_sensors的外部命令&#xff0c;需要安装&#xff1a;apt-get install lm_sensors…

python:tkinter + cef 模仿 mdict 界面

cefpython3 其上游是C开发的CEF&#xff08;基于webkit、V8&#xff09;&#xff0c; CEF 即 (Chromium Embedder Framework)&#xff0c; 是基于Google Chromium项目的开源 Web browser控件(WebView)。 可查看github文档&#xff1a;cefpython api pip install cefpython3 c…

TCP编程流程(补充)

目录 1、listen&#xff1a; 2、listen、tcp三次握手 3、 发送缓冲区和接收缓冲区&#xff1a; 4、tcp编程启用多线程 1、listen&#xff1a; 执行listen会创建一个监听队列 listen(sockfd,5) 2、listen、tcp三次握手 三次握手 3、 发送缓冲区和接收缓冲区&#xff1a;…

SpringBoot复习:(52)不再需要使用@EnableTransactionManagement的原因

在Spring项目中&#xff0c;要用事务&#xff0c;需要EnableTransactionManagement注解加Transactional注解。而在SpringBoot项目&#xff0c;有事务的自动配置类TransactionAutoConfiguration,代码如下&#xff1a; 可以在其内部类EnableTransactionManagementConfiguratio…

2017年3月全国计算机等级考试真题(C语言二级)

2017年3月全国计算机等级考试真题&#xff08;C语言二级&#xff09; 第1题 每个学校有一名校长&#xff0c;且不同学校的校长可以是同一人&#xff0c;则实体学校和实体校长间的联系是 A. 多对一 B. 多对多 C. 一对一 D. 一对多 正确答案&#xff1a;A 第2题 若有以下定义…

[JavaWeb]【一】入门JavaWeb开发总概及HTML、CSS、JavaScript

目录 一 特色 二 收获​编辑 三 什么是web? 四 网站的工作流程 五 web网站的开发模式​编辑 六 web开发课程学习安排 七、初始web前端 八 HTML、CSS 8.1 什么是HTNL\CSS(w3cschool) 8.2 HTML快速入门 8.3 VS Code开发工具 8.3.1 插件 8.3.2 主题&#xff08;改变颜色&…

Python写一个创意五子棋游戏

前言 在本教程中&#xff0c;我们将使用Python写一个创意五子棋游戏 &#x1f4dd;个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列&#xff1a; ☄️爬虫JS逆向系列专栏 - 爬虫逆向教学 ☄️python系列专栏 - 从零开始学python 首先 GomokuGame 类的构造函数 __ini…

Redis、Memcache和MongoDB的区别

>>Memcached Memcached的优点&#xff1a; Memcached可以利用多核优势&#xff0c;单实例吞吐量极高&#xff0c;可以达到几十万QPS&#xff08;取决于key、value的字节大小以及服务器硬件性能&#xff0c;日常环境中QPS高峰大约在4-6w左右&#xff09;。适用于最大程度…