Skip to content

Instantly share code, notes, and snippets.

@mtodd
Created September 16, 2008 22:21
Show Gist options
  • Save mtodd/11150 to your computer and use it in GitHub Desktop.
Save mtodd/11150 to your computer and use it in GitHub Desktop.
### PUT THIS IN Merb.root/'config'/'init.rb'
# === Dependencies
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'logger_proxy'))
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'logger'))
#
# ==== Set up your basic configuration
#
LoggerProxy.logger = Logger
LoggerProxy.initializer = lambda do |logger, (file, level, delimiter, auto_flush)|
logger = logger.new(STDOUT) # file, level, delimiter, auto_flush
logger.formatter = proc{|s,t,p,m|"%5s [%s] (%s) %s :: %s\n" % [s, t.strftime("%Y-%m-%d %H:%M:%S"), $$, p, m]}
logger.level = Logger.const_get(level.to_s.upcase.to_sym)
logger.progname = "AppName"
logger
end
### PUT THIS IN Merb.root/'lib'
require 'logger'
class Logger
def flush(*args)
return
end
def <<(string = nil)
self.info(string)
end
alias :push :<<
%w(debug info warn error fatal).each do |level|
eval <<-"end;"
def #{level}!(*args)
send(:#{level}, *args)
end
end;
end
end
### PUT THIS IN Merb.root/'lib'
class LoggerProxy
attr_accessor :logger
def initialize(*args)
@logger = self.class.initializer.call(self.class.logger, args)
end
def method_missing(name, *args)
self.logger.send(name, *args)
end
class << self
attr_accessor :logger, :initializer
end
end
# Sets the Proxy's logger to the default Merb::Logger
LoggerProxy.logger = Merb.send(:remove_const, :Logger)
# Merb::Logger.new(Merb.file, Merb::Config[:level], Merb::Config[:delimiter], Merb::Config[:auto_flush])
LoggerProxy.initializer = lambda do |logger, (file, level, delimiter, auto_flush)|
logger.new(file, level, delimiter, auto_flush)
end
# Sets the Merb::Logger to the LoggerProxy
Merb::Logger = LoggerProxy
test_app1$ merb -p 4000
INFO [2008-09-16 18:40:54] (5973) Merb-App-Name-5973 :: Compiling routes...
INFO [2008-09-16 18:40:54] (5973) Merb-App-Name-5973 :: Starting Merb server listening at 0.0.0.0:4000
WARN [2008-09-16 18:40:54] (5973) Merb-App-Name-5973 :: Using Mongrel adapter
INFO [2008-09-16 18:40:58] (5973) Merb-App-Name-5973 :: Started request handling: Tue Sep 16 18:40:58 -0400 2008
DEBUG [2008-09-16 18:40:58] (5973) Merb-App-Name-5973 :: Routed to: {"action"=>"index", "controller"=>"messages"}
INFO [2008-09-16 18:40:58] (5973) Merb-App-Name-5973 :: Params: {"action"=>"index", "controller"=>"messages"}
INFO [2008-09-16 18:40:58] (5973) Merb-App-Name-5973 :: {:dispatch_time=>0.004199, :before_filters_time=>2.6e-05, :action_time=>0.003258, :after_filters_time=>2.9e-05}
INFO [2008-09-16 18:40:58] (5973) Merb-App-Name-5973 ::
INFO [2008-09-16 18:41:01] (5973) Merb-App-Name-5973 :: Started request handling: Tue Sep 16 18:41:01 -0400 2008
DEBUG [2008-09-16 18:41:01] (5973) Merb-App-Name-5973 :: Routed to: {"action"=>"index", "controller"=>"messages"}
INFO [2008-09-16 18:41:01] (5973) Merb-App-Name-5973 :: Params: {"action"=>"index", "controller"=>"messages"}
INFO [2008-09-16 18:41:01] (5973) Merb-App-Name-5973 :: {:dispatch_time=>0.003815, :before_filters_time=>1.0e-05, :action_time=>0.002542, :after_filters_time=>8.0e-06}
INFO [2008-09-16 18:41:01] (5973) Merb-App-Name-5973 ::
INFO [2008-09-16 18:41:02] (5973) Merb-App-Name-5973 :: Started request handling: Tue Sep 16 18:41:02 -0400 2008
DEBUG [2008-09-16 18:41:02] (5973) Merb-App-Name-5973 :: Routed to: {"action"=>"index", "controller"=>"messages"}
INFO [2008-09-16 18:41:02] (5973) Merb-App-Name-5973 :: Params: {"action"=>"index", "controller"=>"messages"}
INFO [2008-09-16 18:41:02] (5973) Merb-App-Name-5973 :: {:dispatch_time=>0.00476, :before_filters_time=>1.0e-05, :action_time=>0.002875, :after_filters_time=>1.0e-05}
INFO [2008-09-16 18:41:02] (5973) Merb-App-Name-5973 ::
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment