root/lib/proxy/log.rb @ 335a1610
038fa6cf | Dmitri Dolguikh | require 'logger'
|
|
335a1610 | Lukas Zapletal | begin
|
|
require 'syslog/logger'
|
|||
::Syslog::Logger.class_eval { alias_method :write, :info }
|
|||
rescue LoadError
|
|||
puts "Setting log_file=SYSLOG not supported on this platform, ignoring"
|
|||
end
|
|||
e09de9d9 | Ohad Levy | ||
335a1610 | Lukas Zapletal | # ::Rack::CommonLogger expects loggers to implement 'write' method
|
|
Logger.class_eval { alias_method :write, :info }
|
|||
038fa6cf | Dmitri Dolguikh | ||
module Proxy
|
|||
module Log
|
|||
@@logger = nil
|
|||
def logger
|
|||
915c16dd | Dmitri Dolguikh | @@logger ||= ::Proxy::Log.logger
|
|
038fa6cf | Dmitri Dolguikh | end
|
|
335a1610 | Lukas Zapletal | def self.default_logger(log_file)
|
|
# We keep the last 6 10MB log files
|
|||
::Logger.new(log_file, 6, 1024*1024*10)
|
|||
end
|
|||
038fa6cf | Dmitri Dolguikh | def self.logger
|
|
31728207 | Lukas Zapletal | log_file = ::Proxy::SETTINGS.log_file
|
|
if log_file.upcase == 'STDOUT'
|
|||
335a1610 | Lukas Zapletal | if SETTINGS.daemon
|
|
puts "Settings log_file=STDOUT and daemon=true are incompatible, exiting..."
|
|||
exit 1
|
|||
end
|
|||
31728207 | Lukas Zapletal | logger = ::Logger.new(STDOUT)
|
|
335a1610 | Lukas Zapletal | elsif log_file.upcase == 'SYSLOG'
|
|
begin
|
|||
logger = ::Syslog::Logger.new 'foreman-proxy'
|
|||
rescue
|
|||
logger = default_logger(log_file)
|
|||
end
|
|||
31728207 | Lukas Zapletal | else
|
|
335a1610 | Lukas Zapletal | logger = default_logger(log_file)
|
|
31728207 | Lukas Zapletal | end
|
|
038fa6cf | Dmitri Dolguikh | logger.level = ::Logger.const_get(::Proxy::SETTINGS.log_level.upcase)
|
|
logger
|
|||
end
|
|||
end
|
|||
class LoggerMiddleware
|
|||
915c16dd | Dmitri Dolguikh | include Log
|
|
038fa6cf | Dmitri Dolguikh | def initialize(app)
|
|
@app = app
|
|||
end
|
|||
def call(env)
|
|||
915c16dd | Dmitri Dolguikh | env['rack.logger'] = logger
|
|
038fa6cf | Dmitri Dolguikh | @app.call(env)
|
|
1728ab70 | Paul Kelly | end
|
|
e09de9d9 | Ohad Levy | end
|
|
end
|