Spring Boot项目中集成Logback作为日志框架-笔记

Spring Boot项目中集成Logback作为日志框架是一个标准做法,因为Spring Boot默认就使用Logback作为日志系统。以下是集成Logback的步骤:
1. 默认集成
Spring Boot会自动配置Logback,所以通常情况下,你不需要添加任何额外的依赖或配置。创建一个新的Spring Boot项目,它会自动包含Logback。
2. 自定义Logback配置
如果你需要自定义Logback的配置,可以通过以下步骤进行:
创建一个名为logback-spring.xml的文件,并将其放在src/main/resources目录下。

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!--定义日志的根路径 项目中value=Maven-SpringBoot/logs--><property name="LOGS" value="./logs"/><!-- 控制台输出 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern></encoder></appender><!-- 文件输出 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOGS}/spring-boot.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 每天滚动生成一个日志文件 --><fileNamePattern>${LOGS}/spring-boot-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 日志文件保留天数 --><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 日志级别 --><root level="INFO"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE"/></root>
</configuration>

在application.properties或application.yml中指定Logback配置文件的位置:

# application.properties
logging.config=classpath:logback-spring.xml

或者

# application.yml
logging:config: classpath:logback-spring.xml
  1. 使用Logger
    在Spring Boot应用中使用SLF4J API来记录日志:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;@RestController
public class MyController {private static final Logger logger = LoggerFactory.getLogger(MyController.class);@GetMapping("/log")public String log(){logger.info("日志记录");int a=12344;logger.info("打印a值:{}",a);return "Logged message!";}}

注:
确保不要同时使用logback.xml和logback-spring.xml,因为Spring Boot提供了对logback-spring.xml的特定支持。
如果需要使用Log4j2,可以从spring-boot-starter中排除spring-boot-starter-logging依赖,并添加spring-boot-starter-log4j2。

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

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

相关文章

介绍一下mybatis的基本配置(mybatis-config.xml)

src/main/resources/mybatis-config.xml 这句代码&#xff0c;是XML的声明&#xff0c;它指定了&#xff0c;XML的版本 和 编码方式 <?xml version"1.0" encoding"UTF-8" ?>这句代码&#xff0c;声明了XML文档类型&#xff0c;它告诉解析器&#x…

RTCRTC

#include "stm32f10x.h" void MyRTC_Init(void) { //1.开启PWR和BKP的时钟 使能BKP和RTC的访问 RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE); PWR_BackupAccessCmd(ENABLE); …

MongoDB的安装与操作

MongoDB的安装 MongoDB的使用与封装安装&#xff1a; 1、官网下载地址&#xff1a;https://www.mongodb.com/try/download/community 2、安装mongodb-windows-x86_64-4.4.28-signed.msi 3、安装Robo3T客户端robo3t_v1.4.3.ziphttps://robomongo.org/&#xff08;客户端MongoD…

k8s负载均衡

在Kubernetes中&#xff0c;负载均衡通常由服务对象来实现。你可以使用Service资源来暴露一个容器&#xff08;或一组容器&#xff09;&#xff0c;并且提供负载均衡功能。 以下是一个简单的服务定义示例&#xff0c;它使用了Cluster内部负载均衡器实现&#xff08;也就是说&a…

H266 编码标准开源编码器 VVenC 介绍

H266 H.266&#xff0c;也称为VVC&#xff08;Versatile Video Coding&#xff09;&#xff0c;是最新的国际视频编码标准&#xff0c;由MPEG&#xff08;Moving Picture Experts Group&#xff09;和ITU&#xff08;International Telecommunication Union&#xff09;联合开…

MySQL CRUD操作

前言&#x1f440;~ 上一章我们介绍了数据库的一些基础操作&#xff0c;关于如何去创建一个数据库&#xff0c;还有使用数据库&#xff0c;删 除数据库以及对表进行的一些基础操作&#xff0c;今天我们学习CRUD操作 俗称&#xff08;增删改查&#xff09; 如果各位对文章的内…

IDM下载器安装cmd注册

一、下载注册 安装包去IDM官网下载最新的试用版即可 或者直达百度网盘下载&#xff08;担心被河蟹&#xff0c;放在txt中了&#xff09;包含IDM下载器安装包和注册软件 IDM下载器安装包和注册软件下载地址链接 https://download.csdn.net/download/qq_31237581/89215452 如果…

【STM32+HAL】SDIO模式读写SD卡

一、准备工作 有关CUBEMX的初始化配置&#xff0c;参见我的另一篇blog&#xff1a;【STM32HAL】CUBEMX初始化配置 二、所用工具 1、芯片&#xff1a; STM32F407ZGT6 2、IDE&#xff1a; MDK-Keil软件 3、库文件&#xff1a;STM32F4xxHAL库 三、实现功能 实现用DMA读写SD卡内…

人工原生动物优化器(APO)-2024年SCI一区新算法-公式原理详解与性能测评 Matlab代码免费获取

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 原理简介 一、觅食行为 (1)自养模式 (2)异…

xss漏洞学习

1.xss漏洞简介 跨站脚本&#xff08;Cross-Site Scripting&#xff09;&#xff0c;本应该缩写为CSS&#xff0c;但是该缩写已被层叠样式脚本Cascading Style Sheets所用&#xff0c;所以改简称为XSS。也称跨站脚本或跨站脚本攻击。 原理&#xff1a;跨站脚本攻击XSS通过将恶…

项目文档:基于JavaFX + Maven的桌面扫雷软件打包exe【小白可做,文章末尾有包教安装有源代码可运行,可打包】

微信公众号: 科研小条 前言 用于学习javafx做桌面软件&#xff0c;熟悉maven构建项目的最佳选择 效果展示&#xff1a; 1. 项目概述 本项目是一个基于Java和JavaFX构建的桌面扫雷游戏软件。扫雷游戏是一种经典的单人益智游戏&#xff0c;玩家需要根据已知的雷区信息&…

Golang Colly爬取图片gorm存储数据

语言:Golang 库:Iris/Colly/gorm 运行结果 text/html; charset=utf-8 It is image 20240429222029_0_0.jpg Saved file: images\20240429222029_0_0.jpg text/html; charset=utf-8 It is image 20240429222030_1_0.jpg Saved file: images\20240429222030_1_0.jpg It is ima…

动态切换数据源的最佳实践

序言 本文和大家聊聊在开发中&#xff0c;动态切换多数据源的方案。 一、多数据源需求 随着应用程序的发展和复杂性增加&#xff0c;对于多数据源的需求也变得越来越普遍。在某些场景下&#xff0c;一个应用程序可能需要连接和操作多个不同的数据库或数据源。常见的场景包括…

Qt QThreadPool线程池

1.简介 QThreadPool类管理一个QThread集合。 QThreadPool管理和重新设计单个QThread对象&#xff0c;以帮助降低使用线程的程序中的线程创建成本。每个Qt应用程序都有一个全局QThreadPool对象&#xff0c;可以通过调用globalInstance来访问该对象。 要使用其中一个QThreadPool…

深入浅出:ChatGPT的训练与优化之道

近年来&#xff0c;自然语言处理领域中出现了一种引人注目的模型——ChatGPT。这种基于GPT&#xff08;Generative Pretrained Transformer&#xff09;架构的模型&#xff0c;在多轮对话任务中展示了卓越的性能&#xff0c;使其能够产生人类水平的文本&#xff0c;并应用于各种…

深度学习入门(4)

神经网络的构建 import numpy as np import matplotlib.pyplot as plt def sigmoid(x):return 1/(1np.exp(-x)) def identity_function(x):#恒等函数return x def init_network():#进行权重和偏置的初始化&#xff0c;并保存到字典中network{}network[W1]np.array([[0.1,0.3,0…

UniApp 中的路由守卫与拦截器:守护应用的每一步

正文&#xff1a; 路由守卫和拦截器在前端开发中扮演着重要的角色&#xff0c;它们可以用来控制页面访问权限、全局请求拦截等。在 UniApp 中&#xff0c;路由守卫和拦截器同样具有强大的功能&#xff0c;能够保护应用的安全和稳定性。本文将深入探讨 UniApp 中的路由守卫和拦…

【ARM Cache 系列文章 12 – Cache Tag与 物理地址】

文章目录 Cache Tag 和 物理地址缓存的关键组成部分和功能Cache 与 MMUCache Tag 和 物理地址 在ARM架构中,缓存(Cache)的设计是提高数据访问效率的关键机制。每个缓存行(Cache Line)都有一个与之关联的标签(Tag),该标签记录了与该行相关联的外部存储器的物理地址。缓…

关于Android优化

Android优化是一个复杂且多方面的过程&#xff0c;涉及到应用程序的各个方面&#xff0c;包括性能、用户体验、安全性等。以下是对Android优化的详细阐述&#xff0c;包括优化策略、优化方法以及优化工具&#xff0c;并辅以具体的案例或示例。 优化策略 一、用户体验优化 用…

ezplot--Matlab学习

目录 一、代码 二、效果 ​编辑 三、ezplot讲解 四、如何自定义一个函数 一、代码 clc; clear; t0:32; x4(t) cos(2*pi*t/4).*sin(2*pi*t/4); x8(t) cos(2*pi*t/8).*sin(2*pi*t/8); x16(t) cos(2*pi*t/16).*sin(2*pi*t/16); subplot(3,1,1) ezplot(x4,[0,32]); subplot…