发布于 2021-03-12 10:03:39
Spring (2.4) starter-logging
默认使用Logback实现SLF4J API,因此使用Lombok进行日志记录的最简单方法是在类上添加@Slf4j
,并使用log
(Sl4j Logger
类)直接记录日志消息。
@Component //spring components
@Slf4j // from Lombok
class MyComponent{
void foo(){
log.info("test foo");
}
}
Spring 5内部引入了一个新的日志记录实现。在上一个版本中,Spring依赖于。Spring 5添加了一个新的模块spring-jcl
,它删除了依赖项commons-logging
,但是它仍然从commons-logging
重用Log
接口,并提供一个简单的实现来在类路径中迭代记录器提供程序并检查Slf4j、Log4j 2等的存在。如果找到它,这个日志将被委托给底层日志框架。如果没有找到,它将使用Log
的简单实现中的回退处理来处理日志记录。有关更多细节,请查看Spring中的LogAdapter的源代码。
这意味着在Spring中添加starter-logging
(默认情况下使用sfl4j/logback)并且没有包含其他日志框架,尽管您使用的是Lombok @Log
( Lombok将使用Apachecommons-logging
Log
接口),它将被委托给starter-logging
提供的Slf4j。
要使用Log4j2,将stater日志从web/webflux启动器中排除,并添加starter-log4j2(可以选择切换到Lombok @Log4j2
)。
对于Logback和Log4j2,Spring提供了一个额外的配置文件感知配置功能。例如:logback-spring.xml
。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOGS" value="./logs"/>
<appended ...>
//....
<springProfile name="staging"> <!-- profile specific config -->
<logger .../>
</springProfile>
</configuration>
因此,您可以根据所使用的Spring配置文件在运行时切换详细的日志配置,检查Spring文档的测井段。
发布于 2021-03-12 09:38:55
差不多就是起作用了。将logback的配置文件(logback-spring.xml
)添加到类路径(例如resources
文件夹)中,然后在类中使用@Log
创建记录器。
https://stackoverflow.com/questions/66596836
复制相似问题