使用 Byte_order_mark <feff> 打印 Wildfly 10 Sys-log-handler

Wildfly 10 Sys-log-handler printing with Byte_order_mark <feff>

我在 WildFly-10 Standalone.xml 中配置了一个系统日志处理程序,如下所示

<syslog-handler name="mysyslog">
    <level name="INFO"/>
    <hostname value="localhost"/>
    <app-name value="myappserver"/>
    <facility value="local-use-7"/>
</syslog-handler>

我在 rsyslog.d 中添加了规则,因为

if $programname == 'myappserver'   then /tmp/mysyslog.log

当我检查 mysyslog 文件时,我可以看到 个字符

这些字符在发送到 rsyslog 之前由 Wildfly 本身附加。

你能告诉我如何从我的日志中删除这些吗

我参考了这个 link https://en.wikipedia.org/wiki/Byte_order_mark 它表明这些是 BOM 字符

根据 RFC 5424 spec that the BOM is added. A simple workaround is to override the encoding. Unfortunately the standard syslog server management resource doesn't allow for an encoding to be set. There is an issue filed 解决此问题。

然而,您可以使用 custom-handler 覆盖它并使用 US-ASCII 之类的编码来更改将删除 BOM 的编码。以下 CLI 命令应创建一个类似于您配置的系统日志处理程序。

/subsystem=logging/pattern-formatter=syslog-pattern:add(pattern="(%t) %s%e")
/subsystem=logging/custom-handler=syslog:add(module=org.jboss.logmanager, class=org.jboss.logmanager.handlers.SyslogHandler, named-formatter=syslog-pattern, level=INFO, properties={hostname=localhost, appName="myappserver", facility="LOCAL_USE_7", encoding="US-ASCII", syslogType=RFC5424})