微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将Log4j写入的消息中的localhost.localdomain更改为Linux系统日志

我使用Log4j及其SyslogAppender将消息写入Linux系统日志。 输出的消息如下所示:

Oct 12 09:06:03 localhost.localdomain 3364 [Thread-5] INFO TEST MESSAGE MyApplicationLogger - This is my message

我想用运行该应用程序的服务器的名称replacelocalhost.localdomain,但似乎无法弄清楚如何。 这是我的configuration文件,以防万一它是有用的:

log4j.logger.MyApplicationLogger=INFO,SyslogAppender log4j.appender.SyslogAppender=org.apache.log4j.net.SyslogAppender log4j.appender.SyslogAppender.syslogHost=localhost log4j.appender.SyslogAppender.Facility=USER log4j.appender.SyslogAppender.layout=org.apache.log4j.PatternLayout log4j.appender.SyslogAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n log4j.appender.SyslogAppender.source=My Application

编辑 :在服务器上configuration计算机名称,并且hostname命令返回以下内容

$ hostname server12

但是我注意到hosts文件的第一行是

将Java servlet添加到WAMPconfiguration的机器最简单的方法是什么?

在多台Windows机器上自动执行基于Java的软件安装

用于Java开发的Linux发行版

Android Studio找不到我的JDK

单个尝试catch块的数组中的多个项目

127.0.0.1 localhost.localdomain localhost

不过,我很犹豫要改变这一点。

Java如何停止之前在程序中启动的shell脚本

使用python与java程序进行交互

了解Windows上Web服务器的高系统cpu使用情况

无法findtools.jar

是否有任何Java库来调整Linux上的IO调度优先级

这是你需要的:

log4j.appender.SyslogAppender.header = true

这个问题是因为你的机器不知道它是自己的主机名。 这可以通过以非特权用户身份运行命令hostname来演示。

如果你有root权限,那么你可以使用设置你的主机名

$ hostname myserversHostname

手册页

为了在重新启动时使这个改变永久化,你将需要在/ etc中的某个地方设置一个配置文件(正是哪一个取决于你的发行版)。

Debian / ubuntu:/ etc / hostname

Redhat / CentOS / Fedora:/ etc / sysconfig / network

我想出了如何解决这个问题,所以如果别人面临同样的问题,我也可以把解决办法留在这里

属性文件中,把这个:

log4j.appender.SyslogAppender.syslogHost=server12

不知道为什么它的作品,但使用服务器名称,而不是localhost为我工作。

如果您不想在log4j属性或XML文件中“硬编码”主机名,最好的解决方案是由dtyler和yegor256建议的组合。 确保您的主机名设置正确,然后在log4j.xml <param name="Header" value="true"/>使用log4j.appender.SyslogAppender.header = true或<param name="Header" value="true"/>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐