[Solved] How to set HostName in Log Path for Log4j/Tomcat?

This hostname requirement in Logs line or logs path required when logs collector like filebeat or logstash etc are sending the logs line to centralize logging location or all the servers are mounted with one drive where all logs are forwarding. if the logs path or logs line are having the host name then easily troubleshoot the issue by checking the hostname or server.


Based on your requirement you can configure the HostName for logs, Here you will learn about the log4j/Log4j2 and tomcat logging configuration.

Log4j/Log4j2 HostName Configuration

Latest version of log4j/Log4j2 is having the property for HostName. You can print the host name as part of log line or also configure the log file name or folder path with host name.

Configuration for log line:

<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" 
								value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m${hostname}%n" />

Configuration for log file name:

<param name="file" value="C:\\Users\\FacingIssuesOnIT\\App-${hostname}.log" />

Configuration for log file folder path:

<param name="file" value="C:\\Users\\FacingIssuesOnIT\\${hostname}\\App.log" />

Complete Example

Configure Host Name in Log4j/Log4j2

Note: hostname property by default configured by log4j/log4j2, In case You can set any other property also you can set in your main method or application initializer as below:

System.setProperty("HostName", InetAddress.getLocalHost().getHostName());

Tomcat Logging Host Name Configuration

Follow below step to configure host name in tomcat:

  • Add line of statement in your /conf/catalina.properties

Here the property -Dhostname will pass as additional parameter while run tomcat.

  • Update your conf/ logging.properties for replacing the statement


1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs


1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/${hostname}/logs
  • In case want to print hostname as logs statement then update server.xml as below:
<Valve className="org.apache.catalina.valves.AccessLogValue" directory="C:\FacingIssuesOnIT\${hostname}  prefix="localhost_access_log" suffix=".log" pattern="%h %l %u %t &quot; %r &quot; ${hostname} %s %b" />


In this post you learn about the hostname/IP printing in logs statement and configuring the path.


Related Posts

Your Feedback Motivate Us

If our FacingIssuesOnIT Experts solutions guide you to resolve your issues and improve your knowledge. Please share your comments, like and subscribe to get notifications for our posts.

Happy Learning !!!