天天看点

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

2. 项目前期准备–学习创建SpringBoot聚合项目

2.1. 创建父级项目

先创建父级项目,在创建项目的第1个面板的左侧选中Spring Initializr,在右侧确定可用的URL,并点击确定:

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

在第2个界面中,填写Group和Artifact,Type选择为Maven POM,其它选项不要求修改,直接确定即可:

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

在第3个界面中,可以选择依赖,由于这个父项目暂时不确定需要使用哪些依赖,可以先不勾选,后续自行补充也行。

在第4个界面中,主要确定存储项目文件的位置是否正确,全部无误后,则完成创建过程!

2.2. 创建子项目

对父项目点击鼠标右键,选择New > Module,在创建子模块项目的第1个界面中依然选择Spring Initializr,在第2个界面中确定子模块项目的信息,需要注意,当子模块项目的Artifact值中存在减号时,默认的Package值中是把减号两侧的名称直接连接起来的,建议自行补充小数点进行分隔:

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)
学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

在第3个界面中根据需要来勾选依赖,假设希望这个子项目可以被部署到Tomcat,则可以勾选Spring Web依赖(各依赖也可以在创建成功之后再补充):

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

在第4个界面中,确定没有问题,则直接创建完成。

创建完成后,在子模块项目的pom.xml文件中可以看到其父项目依然是SpringBoot项目,而不是之前创建的blog项目:

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

则需要将此处的父项目改为blog项目(打开父项目的pom.xml文件找到相关信息后复制并粘贴到子模块项目中):

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

同时,父项目中并没有自动添加<modules>节点来配置子模块项目,需要手动添加(另外,此时在父项目中并不需要<dependencies>节点和<build>节点,可以自行删除):

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

全部完成后,使用同样的操作手法,另创建一个子模块项目blog-comment。

需要注意,由于2个子模块项目都是可以直接运行的,当添加了Spring Web依赖后,都可以直接启动Tomcat,且默认都是占用8080端口,所以,为了避免冲突,应该显式的将这些子模块项目的端口改为不一样的!

3. 使用SLF4j打印日志

使用SLF4j可以自定义输出日志,类似于使用System.out.println()输出一些内容,使用SLF4j的好处在于执行效率偏高,并且可以自定义日志级别,以至于可以筛选日志(使得级别较低的日志将不会被显示出来)。

在使用SLF4j时,推荐与lombok一起使用,应该先添加lombok的依赖,由于该依赖可能在若干个子模块项目中都需要使用,可以直接将这个依赖添加在父项目中:

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

接下来,可以在任一子模块项目中测试使用SLF4j:

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)

在SLF4j中,日志的级别从低到高为:

TRACE:跟踪信息;

DEBUG:调试;

INFO:一般信息;

WARN:警告,一般是代码质量不高导致的,例如使用了声明为过期的API,或者流对象没有关闭等;

ERROR:错误,一般并不会导致项目崩溃;

FATAL:致命错误,会导致项目崩溃;

OFF:关闭所有日志的输出。

可以在项目的application.properties中配置日志的输出级别:

logging.level.cn.tedu.blog.user=trace

以上配置信息表示配置日志级别(logging.level),且设置的是cn.tedu.blog.user包,表示当前项目中这个包及其所有子孙包中的类输出日志后,都按照trace级别来显示,则trace及更高级别的日志都将被显示!

以上配置信息中,包名的右侧还可以添加类名,表示只配置某个类的日志显示级别。

当设置为trace级别后,各级别的日志都可以输出显示,一般,在开发阶段,都直接设置为trace级别即可,并且,在开发时,应该区分使用log的方法,比较敏感的信息应该使用debug方法来输出,当项目开发完成,需要部署到服务器上时,建议设置为warn(警告)或更高级别,则较低级别的日志在正式服务器的运行过程中并不会被显示出来!

在调用log的各方法时,输出的内容可以使用{}作为占位符(括号中间没有内容),后续使用可变参数添加占位符对应的值,例如:

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(3)