You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wildfly 10日志自定义:添加主机名字段至Logstash输出

无需新增模块,通过XML配置添加主机名与自定义字段的方案

嘿,很高兴看到你已经在WildFly 10 + Logstash的日志集成上走了这么远!其实完全不用新增额外模块,直接通过WildFly的日志子系统XML配置(比如standalone.xml或domain.xml)就能给LogstashFormatter添加主机名字段和自定义字段,我之前帮不少朋友处理过类似需求,下面给你具体的实现步骤:

核心思路:利用LogstashFormatter的自定义属性配置

jboss-logmanager-ext里的LogstashFormatter本身就支持通过<property>标签直接添加自定义字段,不管是主机名这种动态获取的值,还是固定的自定义标识都能实现,完全不需要额外引入模块。

1. 添加主机名字段

Docker容器的主机名可以通过环境变量HOSTNAME获取,或者WildFly自身的系统属性jboss.host.name,你可以在Formatter配置里直接引用这些值。

2. 添加自定义字段

同样用<property>标签,指定字段名和对应的值即可,值可以是固定字符串、系统属性或者环境变量。

具体XML配置示例

找到你WildFly配置文件里的日志子系统部分(通常在<subsystem xmlns="urn:jboss:domain:logging:3.0">下),修改或新增LogstashFormatter的配置:

<subsystem xmlns="urn:jboss:domain:logging:3.0">
    <formatters>
        <custom-formatter name="LOGSTASH" class="org.jboss.logmanager.formatters.LogstashFormatter">
            <!-- 基础配置(你已有的部分,比如日期格式等) -->
            <property name="dateFormat" value="yyyy-MM-dd'T'HH:mm:ss.SSSZ"/>
            
            <!-- 添加主机名字段:这里用Docker容器的HOSTNAME环境变量 -->
            <property name="field.hostname" value="${env.HOSTNAME}"/>
            
            <!-- 或者用WildFly的主机名属性 -->
            <!-- <property name="field.hostname" value="${jboss.host.name}"/> -->
            
            <!-- 添加自定义字段:比如应用标识 -->
            <property name="field.app_name" value="my-wildfly-app"/>
            
            <!-- 再比如环境标识 -->
            <property name="field.environment" value="production"/>
        </custom-formatter>
    </formatters>
    
    <!-- 记得把这个formatter关联到对应的handler,比如console-handler或者file-handler -->
    <console-handler name="CONSOLE">
        <formatter name="LOGSTASH"/>
    </console-handler>
</subsystem>

关键说明

  • 字段名的格式是field.xxx,其中xxx就是你要在Logstash里接收的字段名(比如上面的hostname、app_name)
  • 如果你需要引用系统属性或环境变量,直接用${属性名}的格式即可,WildFly会自动解析
  • 不需要新增任何模块,因为你已经部署了jboss-logmanager-ext-1.0.0.Alpha5.jar,这个jar已经包含了LogstashFormatter的所有功能

验证方法

修改完配置后,重启WildFly容器,然后查看日志输出,你应该能看到JSON格式的日志里新增了hostname、app_name等字段,直接被Logstash接收处理就行。

内容的提问来源于stack exchange,提问作者Aliiiiiiii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:59:30