当前位置: 首页 > 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

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

http://www.lryc.cn/news/127349.html

相关文章:

  • 【Java集合框架面试题(30道)】
  • Android 组件
  • kotlin的数据类型和类型转换
  • 常见架构类型
  • 搭建Web服务器并用cpolar发布至公网访问
  • NanoPi NEO移植LVGL8.3.5到1.69寸ST7789V屏幕
  • 阿里云服务区ECS,申请免费的服务器之后,如何使用xshell 登陆,找不到匹配的host key 算法
  • 【CTF-web】备份是个好习惯(查找备份文件、双写绕过、md5加密绕过)
  • C#和Java的大端位和小端位的问题
  • 如何在 iOS 上安装并使用 ONLYOFFICE 文档
  • 【AI】如何用AI生成XMind思维导图
  • k8s问题汇总
  • 打造专属照片分享平台:快速上手Piwigo网页搭建
  • OpenAI全球招外包大军,手把手训练ChatGPT取代码农 ; 码农:我自己「杀」自己
  • 船舶法兰盘法兰管件3D扫描尺寸测量|三维扫描检测|CAV测量-CASAIM
  • 每天一道leetcode:1218. 最长定差子序列(动态规划中等)
  • C#的 Settings.Settings配置文件的使用方法
  • 神经网络基础-神经网络补充概念-35-为什么正则化可以减少过拟合
  • Glide 的超时控制相关处理
  • 使用requests如何实现自动登录
  • 【代码随想录-Leetcode第六题:209. 长度最小的子数组】
  • 部署LVS-DR群集
  • 建库、建表、修改表、复制表、字符类型、数值类型、枚举类型、日期时间类型、检索目录、数据导入命令、数据导入步骤、数据导出命令、非空、默认值、唯一索
  • iview默认样式覆盖
  • System.Text.Encoding不同字符编码之间进行转换
  • 计组 | DMA
  • 在服务器开jupyter notebook server
  • Jetpack 中的 databinding - 使用篇
  • C++之signal信号应用实例(一百七十六)
  • 【数据分析入门】Numpy进阶