我可以为 Spring 引导应用程序配置启动和关闭日志吗?
Can I configure startup and shutdown logs for Spring Boot applications?
为了能够验证我们的 Spring 引导应用程序的启动和关闭,我们想要配置 startup.log 和 shutdown.log 捕获 bootstrap 并关闭 bootstrap 的事件申请。
对于启动一切直到:
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) { .... }
}
您可以组合 EventListener with ApplicationReadyEvent and ContextStoppedEvent.
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.ContextStoppedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
@Component
class StartupShutdownEventListener {
@EventListener
void onStartup(ApplicationReadyEvent event) {
// do sth
}
@EventListener
void onShutdown(ContextStoppedEvent event) {
// do sth
}
}
注意: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);
}
}
为了能够验证我们的 Spring 引导应用程序的启动和关闭,我们想要配置 startup.log 和 shutdown.log 捕获 bootstrap 并关闭 bootstrap 的事件申请。
对于启动一切直到:
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) { .... }
}
您可以组合 EventListener with ApplicationReadyEvent and ContextStoppedEvent.
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.ContextStoppedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
@Component
class StartupShutdownEventListener {
@EventListener
void onStartup(ApplicationReadyEvent event) {
// do sth
}
@EventListener
void onShutdown(ContextStoppedEvent event) {
// do sth
}
}
注意: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);
}
}