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?