【发布时间】:2016-12-29 09:36:54
【问题描述】:
我为logstash编写了一个自定义过滤器插件来调用一个java类。
要求:
输入插件:从队列中读取
自定义插件:为队列中的每条消息调用 java 类
**Code:**
# encoding: utf-8
require "logstash/filters/base"
require "logstash/namespace"
require "java"
require "test.jar"
class LogStash::Filters::Example < LogStash::Filters::Base
config_name "example"
public
def register
end # def register
public
def filter(event)
object = Java::Com.test.Test.new
a = object.readMessage(event.get("message"))
event.set("message",a)
filter_matched(event)
end # def filter
end # class LogStash::Filters::Example
问题: 有没有一种方法可以只实例化一次 java 类?对于我从队列中读取的每条消息,我不想创建 java 类的新实例,而是在 logstash 启动期间对其进行实例化,并对所有传入消息使用相同的对象。
【问题讨论】:
标签: java ruby apache-kafka logstash logstash-configuration