--关于日志兼容

首先,springboot采用的默认日志框架是 slf4j+logback ,一般也推荐使用slf4j作为抽象层调用,一来是slf4j本身好用,二来是slf4j的兼容性高,具备大量的适配包,可以与commons-logging,log4j等快速适配。

我们在springboot中使用其它框架时,一定要把其它框架的默认日志包移除,否则springboot自动匹配相应的替代包后会导致冲突。比如如果我们引用了某个带有log4j的框架,那么就要把 log4j包 移除,否则会 与springboot自动匹配的 log4j-to-slf4j包 相冲突。

另外的,我们编程时主要一律 调用抽象包slf4j的方法 ,使得整个程序不依赖于某个具体的日志工具包,而只需要后期 引入具体工具包(如logback包)

 

--关于日志优先级

springboot默认优先级一般为 info

//优先级从低到高
logger.trace("追踪");
logger.debug("测试");
logger.info("自定义");
logger.warn("警告");
logger.error("漏洞");

//重设默认优先级,application.properties 中
//注意path是路径包含的全部生效

logging.level.path=method

 

--关于日志文件的指定

注意,无论是路径还是文件名,都是支持绝对路径的(注意是就算在Windows开发环境下也是 D:/spring/ 形式,而不是Windows的 D:\spring\ 形式)。如果想使用相对路径也可以,如果用 / 开头,即本项目所在盘的根目录,比如 D:/

logging.file.path=directory  //springboot会自动在该目录下创建spring.log文件
logging.file.name=file

 

--关于日志文件的多文件配置

如果我们需要独立配置,那么我们只需要将原日志框架的配置文件放在springboot的配置文件群中即可,系统会自动覆盖掉springboot的默认配置。但是我们一般会给 logName.xml 加上一个后缀,比如 logback.xml 改为 logback-spring.xml ,这样就不是由日志框架识别加载,而是由springboot加载,这样我们就能使用 <springProfile>

 

--关于日志框架切换

一般不建议切换掉 slf4j+logback ,但是要的话也可以,就把相应的依赖包删掉,再引入新的框架依赖包就行。这里注意, slf4j+log4j2 也是springboot支持的一个组合,而且能快速切换,直接把依赖 spring-boot-starter-logging ,换成 spring-boot-starter-log4j2

 

--end