Logging 我可以为Spring启动应用程序配置启动和关闭日志吗?
为了验证Spring引导应用程序的启动和关闭,我们需要配置一个startup.log和shutdown.log来捕获引导和关闭应用程序的事件 对于启动所有内容,最多:Logging 我可以为Spring启动应用程序配置启动和关闭日志吗?,logging,spring-boot,app-startup,Logging,Spring Boot,App Startup,为了验证Spring引导应用程序的启动和关闭,我们需要配置一个startup.log和shutdown.log来捕获引导和关闭应用程序的事件 对于启动所有内容,最多: Root WebApplicationContext: initialization completed in {x} ms 对于以下各项: Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContex
Root WebApplicationContext: initialization completed in {x} ms
对于以下各项:
Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@53bd8fca: startup date [Wed Aug 19 09:47:10 PDT 2015]; root of context hierarchy
到最后
这是特定于容器的吗?(Tomcat vs Jetty vs Undertow)您可以创建一个事件监听器,监视
ApplicationReadyEvent
和ContextStoppedEvent
并记录您想要的任何内容
@Service
public class Foo {
@EventListener
public void onStartup(ApplicationReadyEvent event) { ... }
@EventListener
public void onShutdown(ContextStoppedEvent event) { .... }
}
您可以与和组合
注意:Stephane Nicoll提供的答案确实包含相同(正确)的信息,但我想提供一个有效的Java示例。我们使用
@PostConstruct
和@PreDestroy
来记录启动和关闭:
package hello;
import java.util.Arrays;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
@PostConstruct
public void startupApplication() {
// log startup
}
@PreDestroy
public void shutdownApplication() {
// log shutdown
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
package hello;
import java.util.Arrays;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
@PostConstruct
public void startupApplication() {
// log startup
}
@PreDestroy
public void shutdownApplication() {
// log shutdown
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}