当前位置: 首页 > news >正文

SpringBoot的配置文件以及日志设置

在使用SpringBoot开发的过程中我们通常会用到配置文件来设置配置信息

以及使用日志来进行记录我们的操作,方便我们对错误的定位


配置文件的作用在于:设置端口,设置数据库连接信息,设置日志等等 

在SpringBoot中,配置文件必须要以application作为命名,

同时在SpringBoot中有两种配置文件格式

一种是application.properties,另一种是application.yml的格式

两种格式的区别在于properties是SpringBoot中默认的配置文件的格式

而yml格式支持多种语言的格式

以properties格式为例子:properties存储配置信息是以key-value的形式进行存储的

#配置项中设置端口号
server.port = 9090#配置项中设置数据库的连接
spring.datasource.url = jdbc:mysql//127.0.0.1:3306/java?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 8888#配置项中设置日志
logging.level.com.example.demo = debug
logging.file=d:/work/demo.log#配置项中设置对象中的属性
student.name = tom
student.id = 1
student.gender = man

properties格式的配置文件的缺点在于不能够支持多种语言,并且配置内容过于冗余

但是在springboot中properties的优先级是比yml要高的

而我们使用yml的形式就可以弥补properties的缺点了

#设置端口号
server:port: 9090#设置字段的内容
mystr1: 你\n好
mystr2: '你\n好'
mystr3: "你\n好"#设置对象的属性
student:id: 1name: 张三age: 18# 日志级别的设置
logging:level:root: errorcom:example:demo:controller: tracefile:path: D:\

上面提到的设置字段的内容,我们都是可以在class类里面进行调用的

不管是使用哪种配置文件都是使用 @Value(${xxxx})注解的形式进行调用

    @Value("${mystr1}")private String str1;@Value("${mystr2}")private String str2;@Value("${mystr3}")private String str3; //"xxx\nxxx" 只有这样才能进行换行

在yml中我们要想将字段进行换行打印就需要用到字符串以及转义字符,否则无法进行换行输出

我们还提到了在可以设置对象的属性进行注入

这个时候我们就需要在实体类中使用注解

@ConfigurationProperties("xxx") <-此处的xxx为配置文件中对象名称 

这样就可以进行属性注入了

@ConfigurationProperties("student")
@Controller
public class StudentController {private int id;private String name;private int age;
}

在实际开发的过程中我们通常有三个环境:开发环境、测试环境、生产环境

可能每个环境下我们的配置文件都不一样,但是代码是相同的

所以为了适配各个环境下的配置文件

我们可以创建一个公共的配置文件来调用不同环境下的配置环境

我们各个环境的配置文件都要以 application 开头然后加上各自的命名

比如开发环境:application-dev.yml 测试环境application-test.yml 生产环境application-prod.yml

在公共的配置文件 application.yml中只需要输入这段代码就可以调用到不同的配置环境了

#设置平台 比如此时我想设置成生产环境
spring:profiles:active: prod

讲完了配置文件我们来说说日志

我们可以使用日志来进行记录错误等信息,当然也可以记录程序的执行时间以及程序的操作人等等

实际上SpringBoot中内置了日志,我们每次在启动SpringBoot的时候都能看到一长串的日志内容

那么SpringBoot中的日志框架里面的内容可以分为:日志门面以及日志实现

日志门面就相当于是一个中间人,我们在调用日志门面以后日志门面会帮我们找到具体的日志实现的项目 ,在日志门面包括(SLF4J以及common-logging)

在日志中,日志的等级分为(从低到高进行排序):

[trace]:级别最低

[debug] :调试的时候进行打印的内容

[info]:普通打印信息

[warn]:警告信息但不影响使用

[error]:错误信息影响正常使用

[fatal]:不会打印出来,直接导致程序退出

我们可以在配置文件中设置我们想要看到的日志等级,比如

#yml格式下的日志配置logging:level: #只查看error及以上的日志信息 root:error 

我们也可以设置某一个包在运行过程的日志提示,比如

#yml格式下的日志配置logging:level: #只查看error及以上的日志信息 root:error com: example: #查看controller包底下在运行过程中trace及以上的日志信息 controller: trace

 那么现在再来讲讲应该怎么样使用日志

我们首先要实例化日志这个类然后再将需要打印日志的类

(比如我现在的UserController需要答应日志)

private static final Logger logger = LoggerFactory.getLogger(UserController.class);

然后就可以正常使用了

    @RequestMapping("/sayHi")public String sayHi(){logger.trace("trace");        //打印一个trace日志 日志内容是tracelogger.info("info");          //打印一个info日志 日志内容是infologger.warn("warn");          //打印一个warn日志 日志内容是warnlogger.error("error");        //打印一个error日志 日志内容是errorreturn "hello world";}

实际上我们如果调用Lombok这个框架的话

只需要加入 @Slf4j 这个注解就不需要再实例化日志对象了

然后日志对象的名称注意 一定是 log

接下来的步骤和正常使用没有区别

相关文章:

SpringBoot的配置文件以及日志设置

在使用SpringBoot开发的过程中我们通常会用到配置文件来设置配置信息 以及使用日志来进行记录我们的操作&#xff0c;方便我们对错误的定位 配置文件的作用在于&#xff1a;设置端口&#xff0c;设置数据库连接信息&#xff0c;设置日志等等 在SpringBoot中&#xff0c;配置…...

【Java集合框架面试题(30道)】

文章目录 Java集合框架面试题(30道)引言1.说说有哪些常见集合&#xff1f; List2.ArrayList和LinkedList有什么区别&#xff1f;3.ArrayList的扩容机制了解吗&#xff1f;4.ArrayList怎么序列化的知道吗&#xff1f;为什么用transient修饰数组&#xff1f;5.快速失败&#xff0…...

Android 组件

TextView 文本框 用于显示文本的一个控件。文本的字体尺寸单位为 sp 。sp: scaled pixels(放大像素). 主要用于字体显示。 文本常用属性 属性名说明id为TextView设置一个组件id&#xff0c;根据id&#xff0c;我们可以在Java代码中通过 findViewById()的方法获取到该对象&…...

kotlin的数据类型和类型转换

在 Kotlin 中&#xff0c;数据类型是变量或表达式的属性&#xff0c;确定了存储的数据类型以及可以在该数据上执行的操作。Kotlin 支持与 Java 类似的基本数据类型&#xff0c;但还引入了一些增强的数据类型和类型安全的特性。 一&#xff0c;基本数据类型 Byte&#xff1a;8…...

常见架构类型

目录 1.单机架构 2.应用数据分离架构 3.读写分离架构 4.冷热分离架构 5.垂直分库架构 6.微服务架构 7.容器编排架构 1.单机架构 单机架构是简单的将应用服务和数据库服务部署到同一台机器上。 缺点&#xff1a;存在很大的性能限制。 2.应用数据分离架构 引入负载均衡&a…...

搭建Web服务器并用cpolar发布至公网访问

本地电脑搭建Web服务器并用cpolar发布至公网访问 文章目录 本地电脑搭建Web服务器并用cpolar发布至公网访问前言1. 首先在电脑安装PHPStudy、WordPress、cpolar2. 安装cpolar&#xff0c;进入Web-UI界面3. 安装wordpress4. 进入wordpress网页安装程序5. 利用cpolar建立的内网穿…...

NanoPi NEO移植LVGL8.3.5到1.69寸ST7789V屏幕

移植前准备 移植好fbtft屏幕驱动 参考链接&#xff1a;友善之臂NanoPi NEO利用fbtft驱动点亮1.69寸ST7789V2屏幕 获取源码 名称地址描述lvglhttps://github.com/lvgl/lvgl.gitlvgl-8.3.5lv_drivershttps://github.com/lvgl/lv_drivers.gitlv_drivers-6.1.1 创建工程目录 创…...

阿里云服务区ECS,申请免费的服务器之后,如何使用xshell 登陆,找不到匹配的host key 算法

目录 1 问题2 解决 1 问题 当在阿里云免费领取服务器之后&#xff0c;使用xshell 登陆不上&#xff0c;提示 找不到匹配的host key 算法 或者 找不到匹配的keyexchange算法 咋解决 2 解决 在在服务器端配置文件&#xff1a;/etc/ssh/sshd_config # 在行尾增加",ecdh…...

【CTF-web】备份是个好习惯(查找备份文件、双写绕过、md5加密绕过)

题目链接&#xff1a;https://ctf.bugku.com/challenges/detail/id/83.html 经过扫描可以找到index.php.bak备份文件&#xff0c;下载下来后打开发现是index.php的原代码&#xff0c;如下图所示。 由代码可知我们要绕过md5加密&#xff0c;两数如果满足科学计数法的形式的话&a…...

C#和Java的大端位和小端位的问题

C#代码里就是小端序,Java代码里就是大端序&#xff0c; 大端位:big endian,是指数据的高字节保存在内存的低地址中&#xff0c;而数据的低字节保存在内存的高地址中&#xff0c;也叫高尾端 小端位:little endian,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存…...

如何在 iOS 上安装并使用 ONLYOFFICE 文档

借助 iOS 版文档应用&#xff0c;您可在移动端设备上访问存储于 ONLYOFFICE 账户中的文件&#xff0c;查看和编辑现有文本文档、电子表格和演示文稿&#xff0c;创建新文档并对其进行整理&#xff0c;以及连接第三方云存储服务。您可与其他门户网站用户协作编辑文档&#xff0c…...

【AI】如何用AI生成XMind思维导图

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff0c;物联网搬砖工一名&#xff0c;致力于为大家淘出更多好用的AI工具&#xff01; 背景 随着人工智能技术的不断发展&#xff0c;越来越多的应用场景开始涉及到AI技术。在办公软件领域&#xff0c;XMind是一款非常受欢迎…...

k8s问题汇总

作者前言 本文章为记录使用k8s遇到的问题和解决方法&#xff0c;文章持续更新中… 目录 作者前言正常配置ingress&#xff0c;但是访问错误添加工作节点报错安装k8s报错使用kubectl命令报错container没有运行安装会出现kubelet异常&#xff0c;无法识别删除k8s集群访问dashboa…...

打造专属照片分享平台:快速上手Piwigo网页搭建

文章目录 通过cpolar分享本地电脑上有趣的照片&#xff1a;部署piwigo网页前言1.Piwigo2. 使用phpstudy网页运行3. 创建网站4. 开始安装Piwogo 总结 &#x1f340;小结&#x1f340; &#x1f389;博客主页&#xff1a;小智_x0___0x_ &#x1f389;欢迎关注&#xff1a;&#x…...

OpenAI全球招外包大军,手把手训练ChatGPT取代码农 ; 码农:我自己「杀」自己

目录 前言 OpenAI招了一千多名外包人员&#xff0c;训练AI学会像人类一样一步步思考。如果ChatGPT「学成归来」&#xff0c;码农恐怕真的危了&#xff1f; 码农真的危了&#xff01; 当时OpenAI也说&#xff0c;ChatGPT最合适的定位&#xff0c;应该是编码辅助工具。 用Cha…...

船舶法兰盘法兰管件3D扫描尺寸测量|三维扫描检测|CAV测量-CASAIM

第一章 服务背景 船舶建造多采用分段建造法&#xff0c;即将零件、预装好的部件在胎架上组合焊接成分段或总段&#xff0c;然后由船台装配成整船的建造方法。而当船体合拢组装时&#xff0c;在船体上遍布着各种各样的管道&#xff0c;这些管道都需要互相完全适配以确保船体安装…...

每天一道leetcode:1218. 最长定差子序列(动态规划中等)

今日份题目&#xff1a; 给你一个整数数组 arr 和一个整数 difference&#xff0c;请你找出并返回 arr 中最长等差子序列的长度&#xff0c;该子序列中相邻元素之间的差等于 difference 。 子序列 是指在不改变其余元素顺序的情况下&#xff0c;通过删除一些元素或不删除任何…...

C#的 Settings.Settings配置文件的使用方法

1、定义 在Settings.settings文件中定义配置字段。把作用范围定义为&#xff1a;User则运行时可更改(用户范围的字段数据更改存储在用户信息中&#xff0c;不在该程序文件中)&#xff0c;Applicatiion则运行时不可更改。可以使用数据网格视图(VS软件的Properties 下面的Setting…...

神经网络基础-神经网络补充概念-35-为什么正则化可以减少过拟合

概念 正则化可以减少过拟合的原因在于它通过限制模型的复杂性来约束参数的取值范围&#xff0c;从而提高了模型的泛化能力。过拟合是指模型在训练集上表现很好&#xff0c;但在未见过的数据上表现不佳&#xff0c;这通常是因为模型过于复杂&#xff0c;过多地拟合了训练数据中…...

Glide 的超时控制相关处理

作者&#xff1a;newki 前言 Glide 相信大家都不陌生&#xff0c;各种源码分析&#xff0c;使用介绍大家应该都是烂熟于心。但是设置 Glide 的超时问题大家遇到过没有。 我遇到了&#xff0c;并且掉坑里了&#xff0c;情况是这样的。 调用接口从网络拉取用户头像&#xff0c…...

TouchGal:打造纯净Galgame社区的5个简单步骤

TouchGal&#xff1a;打造纯净Galgame社区的5个简单步骤 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchGal是一个专为视觉小说…...

SDXL 1.0电影级绘图工坊真实案例:文化遗产数字化重建与风格复原实践

SDXL 1.0电影级绘图工坊真实案例&#xff1a;文化遗产数字化重建与风格复原实践 想象一下&#xff0c;你面前有一张因年代久远而模糊不清的古建筑照片&#xff0c;或是仅存于文字描述中的历史场景。如何将它们清晰地、生动地、甚至以不同艺术风格再现出来&#xff1f;这曾是考…...

run-aspnetcore-microservices 购物车微服务:Redis分布式缓存与Grpc同步通信实现

run-aspnetcore-microservices 购物车微服务&#xff1a;Redis分布式缓存与Grpc同步通信实现 【免费下载链接】run-aspnetcore-microservices aspnetrun/run-aspnetcore-microservices: 是一个用于部署和运行 ASP.NET Core 微服务应用程序的开源项目&#xff0c;提供了一个简单…...

Go UUID终极指南:为什么选择go.uuid而非标准库的5大理由

Go UUID终极指南&#xff1a;为什么选择go.uuid而非标准库的5大理由 【免费下载链接】go.uuid UUID package for Go 项目地址: https://gitcode.com/gh_mirrors/go/go.uuid 在Go语言开发中&#xff0c;生成全局唯一标识符&#xff08;UUID&#xff09;是常见的需求。虽然…...

Marin说PCB之GMSL2 POC电路优化实战---从仿真到测试的完整解析

1. GMSL2 POC电路问题诊断与优化思路 最近在测试GMSL2 POC电路时遇到了一个典型问题&#xff1a;多路信号的插损&#xff08;S21&#xff09;和回损&#xff08;S11&#xff09;指标不达标。这种情况在实际项目中并不少见&#xff0c;但每次遇到都需要我们仔细分析原因并找到有…...

别再死记硬背公式了!图解OpenCV相机标定:从像素到世界的坐标变换到底在干啥?

图解OpenCV相机标定&#xff1a;从像素到世界的坐标变换全解析 当你第一次看到相机标定的数学公式时&#xff0c;是不是感觉像在看天书&#xff1f;旋转矩阵、平移向量、内参矩阵...这些抽象的概念到底对应着现实世界中的什么&#xff1f;本文将用最直观的方式&#xff0c;带你…...

告别手动复制粘贴:MeterSphere参数提取功能详解,让你的接口自动化测试效率翻倍

MeterSphere参数提取实战&#xff1a;构建动态接口测试链的三大高阶技巧 在持续集成环境中&#xff0c;接口自动化测试往往面临一个关键挑战&#xff1a;如何让不同接口之间实现数据动态传递&#xff1f;传统的手动复制粘贴不仅效率低下&#xff0c;更难以应对复杂业务场景。Me…...

MAX7319 GPIO输入扩展库:硬件边沿检测与中断驱动实践

1. 项目概述iotec_MAX7319 是一款面向嵌入式系统的轻量级 C 驱动库&#xff0c;专为 Maxim Integrated&#xff08;现属 Analog Devices&#xff09;推出的 IC 接口 GPIO 扩展芯片 MAX7319 设计。该芯片并非通用型端口扩展器&#xff0c;而是一款带可屏蔽边沿检测功能的专用输入…...

s2-pro音色定制实战:为品牌IP打造专属语音形象的全流程方案

s2-pro音色定制实战&#xff1a;为品牌IP打造专属语音形象的全流程方案 1. 为什么品牌需要专属语音形象 在当今数字营销时代&#xff0c;品牌IP的语音形象已经成为品牌识别的重要组成部分。一个独特、一致的语音形象能够&#xff1a; 增强品牌辨识度&#xff1a;让用户一听到…...

[OS] Rate Monotonic Scheduling: Optimizing Real-Time Task Prioritization

1. 速率单调调度&#xff1a;实时系统的优先级管理艺术 想象一下急诊室的医生如何决定救治顺序——心跳停止的患者永远优先于感冒发烧的病人。速率单调调度&#xff08;Rate Monotonic Scheduling&#xff0c;RMS&#xff09;就是实时操作系统中的这位"分诊专家"&am…...