如何以日志记录格式获取运行应用程序的端口号?

时间:2019-07-10 12:28:45

标签: java spring-boot application.properties

如何在日志记录信息下获取主机名或帖子号?这不起作用:

logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} %d{localhost}  ---- %msg%n

1 个答案:

答案 0 :(得分:0)

  1. 您需要在Spring Boot主类中实现ApplicationListener<EmbeddedServletContainerInitializedEvent>
  2. 嵌入式servlet容器将为您提供用于初始化应用程序的确切端口号。
  3. 可以使用内部网地址获取主机地址/名称。
  4. 将System.out.println替换为logger.info()

供参考:

@SpringBootApplication
@EnableSwagger2
public class SpringBootAppMain implements ApplicationListener<EmbeddedServletContainerInitializedEvent> {
    @Autowired
    Environment environment;
    public static void main(String[] args) {
        SpringApplication.run(SpringBootAppMain.class, args);
    }

    @Override
    public void onApplicationEvent(EmbeddedServletContainerInitializedEvent embeddedServletContainerInitializedEvent) {
        System.out.println("Port " + embeddedServletContainerInitializedEvent.getApplicationContext().getEmbeddedServletContainer().getPort());
        try {
            System.out.println("HOST Address " + InetAddress.getLocalHost().getHostAddress());
            System.out.println("Host Name " + InetAddress.getLocalHost().getHostName());
        } catch (UnknownHostException e) {

        }
    }
}
相关问题