【问题标题】:Hostname is undefined in Logback/SLF4J in production environment主机名在生产环境的 Logback/SLF4J 中未定义
【发布时间】:2011-07-11 14:15:46
【问题描述】:

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

我有以下用于邮件附加主题的模式:

<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

【问题讨论】:

  • 在你的 debian 机器上 /etc/hostname 的内容是什么?
  • /etc/hostname 的内容是 s1
  • 在未知主机上 ping s1 结果,s1.myservice.com 也是如此

标签: java logging slf4j logback


【解决方案1】:

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

import java.net.*;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多