为什么 log4j2-spring.xml 中的 sys:hostName 属性在 JDK 17 中只返回主机名而不是主机和域?

Why sys:hostName property in log4j2-spring.xml returns just hostname and not host and domain both in JDK 17?

提问人:Tom 提问时间:11/16/2023 最后编辑:Tom 更新时间:11/17/2023 访问量:21

问:

我正在将 spring boot 应用程序从 spring boot 2 迁移到 spring boot 3,这也需要升级 Java。

为什么在JDK 1.8中log4j2-spring.xml ${sys:hostName:-NA}返回主机和域名,即。uk202301.cloud.mycompany,其中与 JDK 17 一样返回 只是hostName,即。英国202301 ? 请参阅下面突出显示的 JDK 1.8 中的文件名

  • Java版本:JDK1.8.0_121-x64

  • Spring Boot 版本 2.7.14

  • 日志4j:2.17.1

  • 操作系统: RedHat

返回文件名

  • 文件名: uk202301.cloud.mycompany_myappuser_myproject-discovery-service_file.log

其中 作为 JDK 17 中的文件名,下面突出显示

  • Java版本:jdk-17.0.0-x64
  • Spring Boot 版本:3.1.3
  • 日志4j:2.20.0
  • 操作系统: RedHat 返回文件名
  • 文件名: uk202301_myappuser_myproject-discovery-service_file.log
 <Appenders>
    <RollingFile name="rollingFile"
         **fileName**="${sys:LOG_DIR:-/tmp}/${sys:hostName:-NA}_${env:USER:-NA}_${sys:LOG_FILE_STEM:-app}_file.log"
         filePattern="${sys:LOG_DIR:-/tmp}/../archive/${sys:hostName:-NA}_${env:USER:-NA}_${sys:LOG_FILE_STEM:-app}_file.log.%i.gz"
         immediateFlush="false">
        ..
    </Appenders>

哪里-DLOG_DIR= /myproject/log/myappuser/myproject-discovery-service -DLOG_FILE_STEM=myproject-discovery-service -DLOG_FILE_STEM=myproject-discovery-service

找到了一些参考资料,但对我来说不太清楚。为什么 java getHostName 会给出 FQDN?

迁移 主机名

评论


答: 暂无答案