我已经为logstash编写了一个自定义过滤器插件来调用java类。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启动过程中对其进行实例化,并对所有传入消息使用相同的对象。
2016-12-29
minion