Java中可以提供日志功能的特别多,从 java.util 默认提供的日志支持,到 log4j,log4j2,commons logging 等,但我一般比较喜欢西永logback,下面我们看下springboot中logback如何配置。
在springboot项目中 ,只需要在 maven 依赖pom.xmlzhong 添加了 spring-boot-starter-logging,如以下代码所示:
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-logging </artifactId>
</dependency>
我们的 SpringBoot 应用将自动使用 logback 作为应用日志框架。SpringBoot 启动的时候,由 org.springframework.boot.logging.Logging-Application-Listener 根据情况初始化并使用。
SpringBoot 为我们提供了很多默认的日志配置,所以只要将 spring-boot-starter-logging 作为依赖加入到当前应用的 classpath,则“开箱即用”,不需要做任何多余的配置。
如果我们要对默认 SpringBoot 提供的应用日志设定做调整,则可以通过几种方式进行配置调整:
SpringBoot 默认允许我们通过在配置文件或者命令行等方式使用 logging.file 和 logging.path 来自定义日志文件的名称和存放路径,不过这只是允许我们在 SpringBoot 框架预先定义的默认日志系统设定的基础上做有限的设置,如果我们希望更灵活的配置,最好通过框架特定的配置方式提供相应的配置文件,然后通过 logging.config 来启用。
当然如果需要使用 log4j 或者 log4j2,可以采用类似的方式将它们对应的 spring-boot-starter 依赖模块加到 Maven 依赖中:
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-log4j </artifactId>
</dependency>
或者
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-log4j2 </artifactId>
</dependency>
配置方法与上面差不多,文件名字相应改为log4j.xml 或 log4j2.xml。
btw,一个系统最好使用一套日志框架,便于开发、便于维护且不会产生冲突。