我已經為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