Spring Boot中默认集成了SLF4j+Logback,不用额外的maven依赖配置就可以直接使用
默认实现
Logback有一个默认的最简单配置的控制台实现,不用额外的配置文件就可以输出日志到控制台,如下代码所示
@RunWith(SpringRunner.class)
@SpringBootTest
public class LogbackTests {
private Logger logger = LoggerFactory.getLogger("yeyuanxinyi");
@Test
public void test() {
logger.info("我是野猿新一啦");
}
}
控制台输出结果,包含了时间、日志级别、线程、logger名称及log内容
2020-09-11 11:44:44.885 INFO 14544 --- [ main] yeyuanxinyi : 我是野猿新一啦
自定义实现
Logback的强大之处在于其灵活的配置,通过配置文件可以配置日志输出的目的地,比如控制台、文件数据库等,可以配置日志的格式包含哪些内容,可以配置输出文件的路径名字等等
下面的示例代码配置了一个最简单的控制台输出
在src-main-resources下创建名为logback-spring.xml的配置文件,内容如下
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
测试代码还是上面原来的,输出如下
2020-09-11 13:52:23.456 [main] INFO yeyuanxinyi - 我是野猿新一啦
- ConsoleAppender:表示控制台输出类
- <encoder>:格式化输出的内容,可以包含时间、线程名、级别等
- <root>:根logger,必须有该标签,通过<appender-ref>关联appender