【问题标题】:How to get running tomcat port in spring application properties如何在spring应用程序属性中运行tomcat端口
【发布时间】:2019-12-18 18:16:01
【问题描述】:

我需要将端口号附加到日志文件。是否有任何属性或变量可用于运行服务器端口?我试过local.server.port属性,但是只有在spring上下文完全初始化后才会初始化。

如果端口号不可用,是否可以在应用程序属性中获取任何 tomcat 实例级别信息?

所有应用程序属性都存储在配置服务器中。

【问题讨论】:

  • 你想什么时候获取属性,在spring上下文初始化之前?
  • 启动日志中没有端口信息吗?您可以为 tomcat 创建另一个日志附加程序以将其打印到另一个日志中。此外,如果您想通过代码执行此操作 - 这意味着通过 Spring 管理代码,这样只会在 Spring 初始化之后/期间发生。或者,您可以在 ServletContext 侦听器中编写代码。你能详细说明你为什么要这样做吗?
  • 是的,在初始化上下文之前。一旦执行了 bean 后处理器,spring 就会调用配置服务器并读取属性。此时我需要运行服务器端口信息

标签: spring spring-boot tomcat


【解决方案1】:

您可以在logback xml中添加以下内容以加载spring配置属性

 <property resource="application.properties"/> 

然后可以使用简单的spring EL表达式获取spring属性,例如:

 <fileNamePattern>%d{yyyy-MM-dd}-${server.port}.log</fileNamePattern>

会将文件创建为 2019-08-12-8080.log,其中 8080 是端口号。 希望对您有所帮助。

【讨论】:

  • 谢谢您的回答,但这会选择属性文件中定义的值。假设在我定义 server.port=8080 的属性文件中,我可能会在 tomcat 服务器上运行此应用程序,该服务器运行在 8090 端口上。当我检索 server.port 时,它给了我 8080 但它应该是 8090。
猜你喜欢
  • 2016-02-15
  • 2016-04-27
  • 2017-01-04
  • 2015-10-31
  • 2018-08-09
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多