class LogStash::Outputs::Application_insights::Multi_io_logger
Public Class Methods
config( configuration )
click to toggle source
# File lib/logstash/outputs/application_insights/multi_io_logger.rb, line 25 def self.config ( configuration ) files = configuration[:logger_files].dup level = configuration[:logger_level] progname = configuration[:logger_progname] shift_size = configuration[:logger_shift_size] shift_age = configuration[:logger_shift_age] files.rotate! if files.length > 1 && [ :stdout, :stderr ].include?( files[0][0] ) (name, file) = files.shift || [ :stdout, STDOUT ] if [ :stdout, :stderr ].include?( name ) logger = Logger.new( file ) else begin file_renamed = File.rename( name, "#{name}.20160714" ) file_renamed = File.rename( "#{name}.20160714", name ) logger = Logger.new( name, shift_age, shift_size ) rescue puts "--- logger do not support log shifting on this OS" logger = Logger.new( name ) end end unless files.empty? @@targets = files logger.formatter = proc do |severity, datetime, progname, msg| formatted_msg = "#{severity[0]}, [#{datetime.utc.iso8601(6)} ##{Process.pid}] #{severity} -- #{progname}: #{msg}#{$/}" begin @@targets.each do |name, t| t.write( formatted_msg ) t.flush end rescue # ignore errors end formatted_msg end end logger.progname = progname logger.level = ( level unless configuration[:logger_files].empty? ) || Logger::UNKNOWN configuration[:logger] = logger end