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

Posted

技术标签:

【中文标题】Wildfly 10 Sys-log-handler 打印与 Byte_order_mark <feff>【英文标题】:Wildfly 10 Sys-log-handler printing with Byte_order_mark <feff> 【发布时间】:2017-06-01 14:41:35 【问题描述】:

我在 WildFly-10 Standalone.xml 中配置了一个 syslog-handler,如下所示

<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 文件时,我可以看到 个字符

这些字符由 Wildfly 自己附加,然后再发送到 rsyslog。

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

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

【问题讨论】:

【参考方案1】:

根据 RFC 5424 规范添加 BOM。一个简单的解决方法是覆盖编码。不幸的是,标准的系统日志服务器管理资源不允许设置编码。不过有一个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)

【讨论】:

以上是关于Wildfly 10 Sys-log-handler 打印与 Byte_order_mark <feff>的主要内容,如果未能解决你的问题,请参考以下文章

WildFly10 关机错误 WFLYHC0181

Wildfly 10 中的 Hibernate 4.3 支持

Wildfly 10.0.0 最终版本是不是支持像 Tomcat 一样的 OCSP?

将 Spring Boot 部署到 Wildfly 10

Wildfly 10.1 部署后停止部署

jconsole 连接 wildfly 10 监控