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

Up.*_*Up. 6 java logging logback slf4j

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

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

<subject>[ERROR] ${HOSTNAME} : %msg</subject>
Run Code Online (Sandbox Code Playgroud)

在Mac上运行服务时,我会收到如下主题:

macbook-pro.localhost : Error message
Run Code Online (Sandbox Code Playgroud)

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

HOSTNAME_IS_UNDEFIENED : Error message
Run Code Online (Sandbox Code Playgroud)

键入hostnameMac和Debian计算机的命令行会产生以下结果:

mac: macbook-pro.localhost
debian: s1.myservice.com
Run Code Online (Sandbox Code Playgroud)

我想看一下s1.myservice.com电子邮件主题.

pal*_*int 4

Logback使用InetAddress.getLocalHost().getHostName()获取 HOSTNAME 的值。检查以下代码在您的服务器上打印的内容:

import java.net.*;

final InetAddress localHost = InetAddress.getLocalHost();
System.out.println("hostAddress: " + localHost.getHostAddress());
System.out.println("hostName: " + localHost.getHostName());
Run Code Online (Sandbox Code Playgroud)