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

35 Views Asked by At

I am migrating a spring boot application from spring boot 2 to spring boot 3 which requires to upgrade Java too.

Why in JDK 1.8 log4j2-spring.xml ${sys:hostName:-NA} returns host & domain name ie. uk202301.cloud.mycompany where as in JDK 17 it returns just hostName ie. uk202301 ? See file name in JDK 1.8 highlighted below

  • Java Version: JDK1.8.0_121-X64

  • Spring Boot Version 2.7.14

  • Log4j: 2.17.1

  • OS: RedHat

Returns file name as

  • fileName: uk202301.cloud.mycompany_myappuser_myproject-discovery-service_file.log

Where as file name in JDK 17 highlighted below

  • Java Version: jdk-17.0.0-X64
  • Spring Boot Version: 3.1.3
  • Log4j: 2.20.0
  • OS: RedHat Returns file name as
  • fileName: 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>

Where -DLOG_DIR= /myproject/log/myappuser/myproject-discovery-service -DLOG_FILE_STEM=myproject-discovery-service -DLOG_FILE_STEM=myproject-discovery-service

Found some reference but not much clear to me. Why java getHostName gives the FQDN?

0

There are 0 best solutions below