在生产环境中的Logback / SLF4J中未定义主机名

时间:2011-07-11 14:15:47

标签: java logging slf4j logback

我正在使用Logback / SLF4J进行日志记录,它就像我的Mac开发机器上的魅力一样。

我有以下用于mail appender主题的模式:

<subject>[ERROR] ${HOSTNAME} : %msg</subject>

在我的Mac上运行服务时,我会收到这样的主题:

macbook-pro.localhost : Error message

当我在Debian(Lenny)VPS上运行该服务时,我收到以下电子邮件主题

HOSTNAME_IS_UNDEFIENED : Error message

在Mac和Debian计算机的命令行中键入hostname会产生以下结果:

mac: macbook-pro.localhost
debian: s1.myservice.com

我希望在电子邮件主题中看到s1.myservice.com

1 个答案:

答案 0 :(得分:4)

使用gets the value of HOSTNAME回退InetAddress.getLocalHost().getHostName()。检查以下代码在服务器上打印的内容:

import java.net.*;

final InetAddress localHost = InetAddress.getLocalHost();
System.out.println("hostAddress: " + localHost.getHostAddress());
System.out.println("hostName: " + localHost.getHostName());