class LogStash::Logger
Attributes
target[RW]
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/logstash/logging.rb, line 10 def initialize(*args) super() #self[:program] = File.basename($0) #subscribe(::Logger.new(*args)) @target = args[0] @channel = Cabin::Channel.get(LogStash) # lame hack until cabin's smart enough not to doubley-subscribe something. # without this subscription count check, running the test suite # causes Cabin to subscribe to STDOUT maaaaaany times. subscriptions = @channel.instance_eval { @subscribers.count } @channel.subscribe(@target) unless subscriptions > 0 # Set default loglevel to WARN unless $DEBUG is set (run with 'ruby -d') @level = $DEBUG ? :debug : :warn if ENV["LOGSTASH_DEBUG"] @level = :debug end # Direct metrics elsewhere. @channel.metrics.channel = Cabin::Channel.new end
setup_log4j(logger)
click to toggle source
# File lib/logstash/logging.rb, line 47 def self.setup_log4j(logger) require "java" properties = java.util.Properties.new log4j_level = "WARN" case logger.level when :debug log4j_level = "DEBUG" when :info log4j_level = "INFO" when :warn log4j_level = "WARN" end # case level properties.setProperty("log4j.rootLogger", "#{log4j_level},logstash") # TODO(sissel): This is a shitty hack to work around the fact that # LogStash::Logger isn't used anymore. We should fix that. target = logger.instance_eval { @subscribers }.values.first.instance_eval { @io } case target when STDOUT properties.setProperty("log4j.appender.logstash", "org.apache.log4j.ConsoleAppender") properties.setProperty("log4j.appender.logstash.Target", "System.out") when STDERR properties.setProperty("log4j.appender.logstash", "org.apache.log4j.ConsoleAppender") properties.setProperty("log4j.appender.logstash.Target", "System.err") else properties.setProperty("log4j.appender.logstash", "org.apache.log4j.FileAppender") properties.setProperty("log4j.appender.logstash.File", target.path) end # case target properties.setProperty("log4j.appender.logstash.layout", "org.apache.log4j.PatternLayout") properties.setProperty("log4j.appender.logstash.layout.conversionPattern", "log4j, [%d{yyyy-MM-dd}T%d{HH:mm:ss.SSS}] %5p: %c: %m%n") org.apache.log4j.LogManager.resetConfiguration org.apache.log4j.PropertyConfigurator.configure(properties) logger.debug("log4j java properties setup", :log4j_level => log4j_level) end
Public Instance Methods
debug(*args)
click to toggle source
# File lib/logstash/logging.rb, line 36 def debug(*args); @channel.debug(*args); end
debug?(*args)
click to toggle source
# File lib/logstash/logging.rb, line 37 def debug?(*args); @channel.debug?(*args); end
error(*args)
click to toggle source
# File lib/logstash/logging.rb, line 42 def error(*args); @channel.error(*args); end
error?(*args)
click to toggle source
# File lib/logstash/logging.rb, line 43 def error?(*args); @channel.error?(*args); end
fatal(*args)
click to toggle source
# File lib/logstash/logging.rb, line 44 def fatal(*args); @channel.fatal(*args); end
fatal?(*args)
click to toggle source
# File lib/logstash/logging.rb, line 45 def fatal?(*args); @channel.fatal?(*args); end
info(*args)
click to toggle source
# File lib/logstash/logging.rb, line 38 def info(*args); @channel.info(*args); end
info?(*args)
click to toggle source
# File lib/logstash/logging.rb, line 39 def info?(*args); @channel.info?(*args); end
level=(value)
click to toggle source
Delegation
# File lib/logstash/logging.rb, line 35 def level=(value) @channel.level = value; end
warn(*args)
click to toggle source
# File lib/logstash/logging.rb, line 40 def warn(*args); @channel.warn(*args); end
warn?(*args)
click to toggle source
# File lib/logstash/logging.rb, line 41 def warn?(*args); @channel.warn?(*args); end