mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 06:37:19 -04:00
parent
bd8f80eb70
commit
c0abde28a6
44 changed files with 134 additions and 95 deletions
|
@ -1,6 +1,5 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/instrument/collector"
|
||||
require "logstash/util/loggable"
|
||||
|
||||
module LogStash
|
||||
module Api
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
|
||||
module LogStash module BootstrapCheck
|
||||
class DefaultConfig
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/event"
|
||||
require "logstash/plugin"
|
||||
require "logstash/logging"
|
||||
|
||||
# This is the base class for logstash codecs.
|
||||
module LogStash::Codecs; class Base < LogStash::Plugin
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
require 'logstash/util/loggable'
|
||||
require 'logstash/compiler/lscl/lscl_grammar'
|
||||
|
||||
java_import org.logstash.config.ir.PipelineIR
|
||||
|
@ -15,10 +14,10 @@ module LogStash; class Compiler
|
|||
input_graph = Graph.combine(*graph_sections.map {|s| s[:input] }).graph
|
||||
output_graph = Graph.combine(*graph_sections.map {|s| s[:output] }).graph
|
||||
|
||||
filter_graph = graph_sections.reduce(nil) do |acc, s|
|
||||
filter_graph = graph_sections.reduce(nil) do |acc, s|
|
||||
filter_section = s[:filter]
|
||||
|
||||
if acc.nil?
|
||||
if acc.nil?
|
||||
filter_section
|
||||
else
|
||||
acc.chain(filter_section)
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/plugins/registry"
|
||||
require "logstash/logging"
|
||||
require "logstash/util/password"
|
||||
require "logstash/util/safe_uri"
|
||||
require "logstash/version"
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/util/loggable"
|
||||
require "logstash/elasticsearch_client"
|
||||
require "logstash/modules/kibana_client"
|
||||
require "logstash/modules/elasticsearch_importer"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/config/source/base"
|
||||
require "logstash/config/pipeline_config"
|
||||
require "logstash/util/loggable"
|
||||
require "uri"
|
||||
|
||||
module LogStash module Config module Source
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
require "logstash/config/source/base"
|
||||
require "logstash/config/modules_common"
|
||||
require "logstash/config/pipeline_config"
|
||||
require "logstash/util/loggable"
|
||||
|
||||
module LogStash module Config module Source
|
||||
class Modules < Base
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/config/source/local"
|
||||
require "logstash/util/loggable"
|
||||
require "logstash/pipeline_settings"
|
||||
|
||||
module LogStash module Config module Source
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
require "elasticsearch"
|
||||
require "elasticsearch/transport/transport/http/manticore"
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/event"
|
||||
require "logstash/logging"
|
||||
require "logstash/plugin"
|
||||
require "logstash/config/mixin"
|
||||
require "logstash/util/decorators"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/event"
|
||||
require "logstash/plugin"
|
||||
require "logstash/logging"
|
||||
require "logstash/config/mixin"
|
||||
require "logstash/codecs/base"
|
||||
require "logstash/util/decorators"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/instrument/snapshot"
|
||||
require "logstash/instrument/metric_store"
|
||||
require "logstash/util/loggable"
|
||||
require "concurrent/timer_task"
|
||||
require "observer"
|
||||
require "singleton"
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/util/loggable"
|
||||
require "logstash/util"
|
||||
require "concurrent"
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
# encoding: utf-8
|
||||
require "pathname"
|
||||
require "logstash/util/loggable"
|
||||
|
||||
# Logic from elasticsearch/core/src/main/java/org/elasticsearch/monitor/os/OsProbe.java
|
||||
# Move to ruby to remove any existing dependency
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/util/loggable"
|
||||
|
||||
module LogStash module Instrument
|
||||
class Snapshot
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
|
||||
module LogStash module Modules class CLIParser
|
||||
include LogStash::Util::Loggable
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
|
||||
require_relative "elasticsearch_resource"
|
||||
|
||||
module LogStash module Modules class ElasticsearchConfig
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
|
||||
module LogStash module Modules class ElasticsearchImporter
|
||||
include LogStash::Util::Loggable
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
require "logstash/json"
|
||||
|
||||
module LogStash module Modules class FileReader
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
require "logstash/json"
|
||||
require "manticore"
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
|
||||
require_relative "file_reader"
|
||||
require_relative "kibana_settings"
|
||||
require_relative "kibana_dashboards"
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
require_relative "kibana_base"
|
||||
|
||||
module LogStash module Modules class KibanaDashboards < KibanaBase
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
|
||||
module LogStash module Modules class KibanaImporter
|
||||
include LogStash::Util::Loggable
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
require_relative "kibana_base"
|
||||
|
||||
module LogStash module Modules class KibanaSettings < KibanaBase
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
require "logstash/util/loggable"
|
||||
require "erb"
|
||||
|
||||
require_relative "elasticsearch_config"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/util"
|
||||
require "logstash/util/loggable"
|
||||
|
||||
module LogStash module Modules module SettingsMerger
|
||||
include LogStash::Util::Loggable
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/event"
|
||||
require "logstash/logging"
|
||||
require "logstash/plugin"
|
||||
require "logstash/config/mixin"
|
||||
require "concurrent/atomic/atomic_fixnum"
|
||||
|
|
|
@ -3,7 +3,6 @@ require "logstash/pipeline_action/base"
|
|||
require "logstash/pipeline"
|
||||
require "logstash/java_pipeline"
|
||||
require "logstash/converge_result"
|
||||
require "logstash/util/loggable"
|
||||
|
||||
module LogStash module PipelineAction
|
||||
class Create < Base
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
require "logstash/pipeline_action/base"
|
||||
require "logstash/pipeline_action/create"
|
||||
require "logstash/pipeline_action/stop"
|
||||
require "logstash/util/loggable"
|
||||
require "logstash/converge_result"
|
||||
|
||||
module LogStash module PipelineAction
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
require "logstash/config/mixin"
|
||||
require "concurrent"
|
||||
require "securerandom"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
# encoding: utf-8
|
||||
require "rubygems/package"
|
||||
require "logstash/util/loggable"
|
||||
require "logstash/plugin"
|
||||
require "logstash/plugins/hooks_registry"
|
||||
require "logstash/modules/scaffold"
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/util/loggable"
|
||||
require "fileutils"
|
||||
require "logstash/util/byte_value"
|
||||
require "logstash/util/substitution_variables"
|
||||
|
@ -10,7 +9,7 @@ module LogStash
|
|||
|
||||
include LogStash::Util::SubstitutionVariables
|
||||
include LogStash::Util::Loggable
|
||||
|
||||
|
||||
def initialize
|
||||
@settings = {}
|
||||
# Theses settings were loaded from the yaml file
|
||||
|
@ -119,7 +118,7 @@ module LogStash
|
|||
self.merge(deep_replace(flatten_hash(settings)), true)
|
||||
self
|
||||
end
|
||||
|
||||
|
||||
def post_process
|
||||
if @post_process_callbacks
|
||||
@post_process_callbacks.each do |callback|
|
||||
|
@ -127,7 +126,7 @@ module LogStash
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def on_post_process(&block)
|
||||
@post_process_callbacks ||= []
|
||||
@post_process_callbacks << block
|
||||
|
@ -439,7 +438,7 @@ module LogStash
|
|||
def initialize(name, default=nil, strict=false)
|
||||
super(name, ::String, default, strict)
|
||||
end
|
||||
|
||||
|
||||
def validate(path)
|
||||
super(path)
|
||||
|
||||
|
|
|
@ -1,30 +1 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging/logger"
|
||||
|
||||
module LogStash module Util
|
||||
module Loggable
|
||||
def self.included(klass)
|
||||
|
||||
def klass.log4j_name
|
||||
ruby_name = self.name || self.class.name || self.class.to_s
|
||||
ruby_name.gsub('::', '.').downcase
|
||||
end
|
||||
|
||||
def klass.logger
|
||||
@logger ||= LogStash::Logging::Logger.new(log4j_name)
|
||||
end
|
||||
|
||||
def klass.slow_logger(warn_threshold, info_threshold, debug_threshold, trace_threshold)
|
||||
@slow_logger ||= LogStash::Logging::SlowLogger.new(log4j_name, warn_threshold, info_threshold, debug_threshold, trace_threshold)
|
||||
end
|
||||
|
||||
def logger
|
||||
self.class.logger
|
||||
end
|
||||
|
||||
def slow_logger(warn_threshold, info_threshold, debug_threshold, trace_threshold)
|
||||
self.class.slow_logger(warn_threshold, info_threshold, debug_threshold, trace_threshold)
|
||||
end
|
||||
end
|
||||
end
|
||||
end; end
|
||||
# Keeping this file for backwards compatibility with plugins that include it directly.
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# encoding: utf-8
|
||||
require "logstash/logging"
|
||||
require "logstash/util/loggable"
|
||||
require "logstash/util/secretstore"
|
||||
|
||||
module ::LogStash::Util::SubstitutionVariables
|
||||
|
|
|
@ -7,7 +7,7 @@ describe LogStash::Config::Mixin do
|
|||
let(:password) { "sekret" }
|
||||
let(:double_logger) { double("logger").as_null_object }
|
||||
|
||||
subject do
|
||||
subject do
|
||||
Class.new(LogStash::Filters::Base) do
|
||||
include LogStash::Config::Mixin
|
||||
config_name "test_deprecated"
|
||||
|
@ -151,7 +151,7 @@ describe LogStash::Config::Mixin do
|
|||
|
||||
it "should raise a configuration error" do
|
||||
expect { subject.required_strings }.to raise_error(LogStash::ConfigurationError)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "with no value specified" do
|
||||
|
@ -160,7 +160,7 @@ describe LogStash::Config::Mixin do
|
|||
it "should raise a configuration error" do
|
||||
expect { subject.required_strings }.to raise_error(LogStash::ConfigurationError)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -208,7 +208,7 @@ describe LogStash::Config::Mixin do
|
|||
|
||||
shared_examples("safe URI") do |options|
|
||||
options ||= {}
|
||||
|
||||
|
||||
subject { klass.new("uri" => uri_str) }
|
||||
|
||||
it "should be a SafeURI object" do
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
require "spec_helper"
|
||||
require "logstash/logging"
|
||||
require "logstash/modules/cli_parser"
|
||||
|
||||
describe LogStash::Modules::CLIParser do
|
||||
|
|
|
@ -370,7 +370,7 @@ describe LogStash::Pipeline do
|
|||
after do
|
||||
pipeline.shutdown
|
||||
end
|
||||
|
||||
|
||||
it "should call close of output without output-workers" do
|
||||
pipeline.run
|
||||
|
||||
|
@ -395,7 +395,7 @@ describe LogStash::Pipeline do
|
|||
# cause the suite to fail :(
|
||||
pipeline.close
|
||||
end
|
||||
|
||||
|
||||
it "should use LIR provided IDs" do
|
||||
expect(pipeline.inputs.first.id).to eq(pipeline.lir.input_plugin_vertices.first.id)
|
||||
expect(pipeline.filters.first.id).to eq(pipeline.lir.filter_plugin_vertices.first.id)
|
||||
|
|
|
@ -33,6 +33,7 @@ import org.logstash.instrument.metrics.MetricExt;
|
|||
import org.logstash.instrument.metrics.NamespacedMetricExt;
|
||||
import org.logstash.instrument.metrics.NullMetricExt;
|
||||
import org.logstash.instrument.metrics.NullNamespacedMetricExt;
|
||||
import org.logstash.log.LoggableExt;
|
||||
import org.logstash.log.LoggerExt;
|
||||
import org.logstash.log.SlowLoggerExt;
|
||||
import org.logstash.plugins.PluginFactoryExt;
|
||||
|
@ -139,8 +140,12 @@ public final class RubyUtil {
|
|||
|
||||
public static final RubyClass LOGGER;
|
||||
|
||||
public static final RubyModule LOGGABLE_MODULE;
|
||||
|
||||
public static final RubyClass SLOW_LOGGER;
|
||||
|
||||
public static final RubyModule UTIL_MODULE;
|
||||
|
||||
/**
|
||||
* Logstash Ruby Module.
|
||||
*/
|
||||
|
@ -229,20 +234,20 @@ public final class RubyUtil {
|
|||
TIMED_EXECUTION_CLASS.defineAnnotatedMethods(MetricExt.TimedExecution.class);
|
||||
NULL_TIMED_EXECUTION_CLASS.defineAnnotatedMethods(NullMetricExt.NullTimedExecution.class);
|
||||
NULL_COUNTER_CLASS.defineAnnotatedMethods(NullNamespacedMetricExt.NullCounter.class);
|
||||
final RubyModule util = LOGSTASH_MODULE.defineModuleUnder("Util");
|
||||
ABSTRACT_DLQ_WRITER_CLASS = util.defineClassUnder(
|
||||
UTIL_MODULE = LOGSTASH_MODULE.defineModuleUnder("Util");
|
||||
ABSTRACT_DLQ_WRITER_CLASS = UTIL_MODULE.defineClassUnder(
|
||||
"AbstractDeadLetterQueueWriterExt", RUBY.getObject(),
|
||||
ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR
|
||||
);
|
||||
ABSTRACT_DLQ_WRITER_CLASS.defineAnnotatedMethods(AbstractDeadLetterQueueWriterExt.class);
|
||||
DUMMY_DLQ_WRITER_CLASS = util.defineClassUnder(
|
||||
DUMMY_DLQ_WRITER_CLASS = UTIL_MODULE.defineClassUnder(
|
||||
"DummyDeadLetterQueueWriter", ABSTRACT_DLQ_WRITER_CLASS,
|
||||
AbstractDeadLetterQueueWriterExt.DummyDeadLetterQueueWriterExt::new
|
||||
);
|
||||
DUMMY_DLQ_WRITER_CLASS.defineAnnotatedMethods(
|
||||
AbstractDeadLetterQueueWriterExt.DummyDeadLetterQueueWriterExt.class
|
||||
);
|
||||
PLUGIN_DLQ_WRITER_CLASS = util.defineClassUnder(
|
||||
PLUGIN_DLQ_WRITER_CLASS = UTIL_MODULE.defineClassUnder(
|
||||
"PluginDeadLetterQueueWriter", ABSTRACT_DLQ_WRITER_CLASS,
|
||||
AbstractDeadLetterQueueWriterExt.PluginDeadLetterQueueWriterExt::new
|
||||
);
|
||||
|
@ -329,14 +334,14 @@ public final class RubyUtil {
|
|||
FILTER_DELEGATOR_CLASS = setupLogstashClass(
|
||||
FilterDelegatorExt::new, FilterDelegatorExt.class
|
||||
);
|
||||
|
||||
final RubyModule loggingModule = LOGSTASH_MODULE.defineOrGetModuleUnder("Logging");
|
||||
LOGGER = loggingModule.defineClassUnder("Logger", RUBY.getObject(), LoggerExt::new);
|
||||
LOGGER.defineAnnotatedMethods(LoggerExt.class);
|
||||
SLOW_LOGGER = loggingModule.defineClassUnder(
|
||||
"SlowLogger", RUBY.getObject(), SlowLoggerExt::new);
|
||||
SLOW_LOGGER.defineAnnotatedMethods(SlowLoggerExt.class);
|
||||
|
||||
LOGGABLE_MODULE = UTIL_MODULE.defineModuleUnder("Loggable");
|
||||
LOGGABLE_MODULE.defineAnnotatedMethods(LoggableExt.class);
|
||||
final RubyModule json = LOGSTASH_MODULE.defineOrGetModuleUnder("Json");
|
||||
final RubyClass stdErr = RUBY.getStandardError();
|
||||
LOGSTASH_ERROR = LOGSTASH_MODULE.defineClassUnder(
|
||||
|
|
|
@ -45,7 +45,7 @@ public final class FilterDelegatorExt extends RubyObject {
|
|||
public IRubyObject init(final ThreadContext context, final IRubyObject filter, final IRubyObject id) {
|
||||
this.id = (RubyString) id;
|
||||
this.filter = filter;
|
||||
this.filterClass = filter.getMetaClass();
|
||||
this.filterClass = filter.getSingletonClass().getRealClass();
|
||||
final IRubyObject namespacedMetric = filter.callMethod(context, "metric");
|
||||
metricEvents = namespacedMetric.callMethod(context, "namespace", RubyUtil.RUBY.newSymbol("events"));
|
||||
eventMetricOut = LongCounter.fromRubyBase(metricEvents, MetricKeys.OUT_KEY);
|
||||
|
|
107
logstash-core/src/main/java/org/logstash/log/LoggableExt.java
Normal file
107
logstash-core/src/main/java/org/logstash/log/LoggableExt.java
Normal file
|
@ -0,0 +1,107 @@
|
|||
package org.logstash.log;
|
||||
|
||||
import org.jruby.RubyClass;
|
||||
import org.jruby.RubyModule;
|
||||
import org.jruby.RubyString;
|
||||
import org.jruby.anno.JRubyMethod;
|
||||
import org.jruby.anno.JRubyModule;
|
||||
import org.jruby.runtime.Block;
|
||||
import org.jruby.runtime.ThreadContext;
|
||||
import org.jruby.runtime.builtin.IRubyObject;
|
||||
import org.jruby.runtime.builtin.InstanceVariables;
|
||||
import org.logstash.RubyUtil;
|
||||
|
||||
@JRubyModule(name = "Loggable")
|
||||
public final class LoggableExt {
|
||||
|
||||
private LoggableExt() {
|
||||
// Ruby Module
|
||||
}
|
||||
|
||||
@JRubyMethod(module = true)
|
||||
public static RubyModule included(final ThreadContext context, final IRubyObject recv,
|
||||
final IRubyObject clazz) {
|
||||
final RubyModule klass = (RubyModule) clazz;
|
||||
klass.defineAnnotatedMethods(LoggableExt.ClassMethods.class);
|
||||
return klass;
|
||||
}
|
||||
|
||||
@JRubyMethod
|
||||
public static IRubyObject logger(final ThreadContext context, final IRubyObject self) {
|
||||
return self.getSingletonClass().callMethod(context, "logger");
|
||||
}
|
||||
|
||||
@JRubyMethod(name = "slow_logger", required = 4)
|
||||
public static IRubyObject slowLogger(final ThreadContext context, final IRubyObject self,
|
||||
final IRubyObject[] args) {
|
||||
return self.getSingletonClass().callMethod(context, "slow_logger", args);
|
||||
}
|
||||
|
||||
private static RubyString log4jName(final ThreadContext context, final RubyModule self) {
|
||||
IRubyObject name = self.name19();
|
||||
if (name.isNil()) {
|
||||
final RubyClass clazz;
|
||||
if(self instanceof RubyClass) {
|
||||
clazz = ((RubyClass) self).getRealClass();
|
||||
} else {
|
||||
clazz = self.getMetaClass();
|
||||
}
|
||||
name = clazz.name19();
|
||||
if (name.isNil()) {
|
||||
name = clazz.to_s();
|
||||
}
|
||||
}
|
||||
return ((RubyString) ((RubyString) name).gsub(
|
||||
context, RubyUtil.RUBY.newString("::"), RubyUtil.RUBY.newString("."),
|
||||
Block.NULL_BLOCK
|
||||
)).downcase19(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds the {@link JRubyMethod}s class methods that the {@link LoggableExt} module binds
|
||||
* on classes that include it (and hence invoke
|
||||
* {@link LoggableExt#included(ThreadContext, IRubyObject, IRubyObject)}).
|
||||
*/
|
||||
public static final class ClassMethods {
|
||||
|
||||
private ClassMethods() {
|
||||
// Holder for JRuby Methods
|
||||
}
|
||||
|
||||
@JRubyMethod(meta = true)
|
||||
public static IRubyObject logger(final ThreadContext context, final IRubyObject self) {
|
||||
final InstanceVariables instanceVariables;
|
||||
if (self instanceof RubyClass) {
|
||||
instanceVariables = ((RubyClass) self).getRealClass().getInstanceVariables();
|
||||
} else {
|
||||
instanceVariables = self.getInstanceVariables();
|
||||
}
|
||||
IRubyObject logger = instanceVariables.getInstanceVariable("logger");
|
||||
if (logger == null || logger.isNil()) {
|
||||
logger = RubyUtil.LOGGER.callMethod(context, "new",
|
||||
LoggableExt.log4jName(context, (RubyModule) self)
|
||||
);
|
||||
instanceVariables.setInstanceVariable("logger", logger);
|
||||
}
|
||||
return logger;
|
||||
}
|
||||
|
||||
@JRubyMethod(name = "slow_logger", required = 4, meta = true)
|
||||
public static SlowLoggerExt slowLogger(final ThreadContext context,
|
||||
final IRubyObject self, final IRubyObject[] args) {
|
||||
final InstanceVariables instanceVariables = self.getInstanceVariables();
|
||||
SlowLoggerExt logger =
|
||||
(SlowLoggerExt) instanceVariables.getInstanceVariable("slow_logger");
|
||||
if (logger == null || logger.isNil()) {
|
||||
logger = new SlowLoggerExt(context.runtime, RubyUtil.SLOW_LOGGER).initialize(
|
||||
context, new IRubyObject[]{
|
||||
LoggableExt.log4jName(context, (RubyModule) self), args[0], args[1],
|
||||
args[2], args[3]
|
||||
}
|
||||
);
|
||||
instanceVariables.setInstanceVariable("slow_logger", logger);
|
||||
}
|
||||
return logger;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -10,7 +10,6 @@ import org.jruby.Ruby;
|
|||
import org.jruby.RubyBoolean;
|
||||
import org.jruby.RubyClass;
|
||||
import org.jruby.RubyObject;
|
||||
import org.jruby.RubyString;
|
||||
import org.jruby.anno.JRubyClass;
|
||||
import org.jruby.anno.JRubyMethod;
|
||||
import org.jruby.javasupport.JavaUtil;
|
||||
|
@ -31,7 +30,7 @@ public class LoggerExt extends RubyObject {
|
|||
}
|
||||
|
||||
@JRubyMethod
|
||||
public IRubyObject initialize(final ThreadContext context, final IRubyObject loggerName) {
|
||||
public LoggerExt initialize(final ThreadContext context, final IRubyObject loggerName) {
|
||||
logger = LogManager.getLogger(loggerName.asJavaString());
|
||||
return this;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ public class SlowLoggerExt extends RubyObject {
|
|||
}
|
||||
|
||||
@JRubyMethod(required = 5)
|
||||
public IRubyObject initialize(final ThreadContext context, final IRubyObject[] args) {
|
||||
public SlowLoggerExt initialize(final ThreadContext context, final IRubyObject[] args) {
|
||||
String loggerName = args[0].asJavaString();
|
||||
slowLogger = LogManager.getLogger("slowlog." + loggerName);
|
||||
warnThreshold = ((RubyNumeric) args[1]).getLongValue();
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# or more contributor license agreements. Licensed under the Elastic License;
|
||||
# you may not use this file except in compliance with the Elastic License.
|
||||
|
||||
require "logstash/util/loggable"
|
||||
require "concurrent"
|
||||
|
||||
module LogStash module Inputs
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue