Я написал специальный фильтр-плагин для 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 и использовать один и тот же объект для всех входящих сообщений.
Спасибо. Ты спас мой день! – minion