Skip to content

Instantly share code, notes, and snippets.

@dcu
Last active August 29, 2015 14:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dcu/9497dbb0532009d59ce1 to your computer and use it in GitHub Desktop.
Save dcu/9497dbb0532009d59ce1 to your computer and use it in GitHub Desktop.
Ruby Loggers Benchmark
require 'buffered-logger'
require 'syslog'
require 'logger'
require 'lumberjack'
require 'chrono_logger'
require 'benchmark'
buffered = BufferedLogger.new('buffered.log')
logger = Logger.new('logger.log')
syslog = Syslog.open('rb_syslog')
lumberjack = Lumberjack::Logger.new("lumberjack.log")
chrono = ChronoLogger.new("chrono.log")
TIMES = 1_000_000
Benchmark.bm(4) do |r|
r.report 'Syslog' do
TIMES.times do |i|
syslog.info "hello #{i}"
end
end
r.report 'Logger' do
TIMES.times do |i|
logger.info "#{Time.now} logging_logger[#{Process.pid}]: INFO logging_logger : hello #{i}"
end
end
r.report 'Buffered' do
TIMES.times do |i|
buffered.info "#{Time.now} logging_logger[#{Process.pid}]: INFO logging_logger : hello #{i}"
end
end
r.report 'Lumberjack' do
TIMES.times do |i|
lumberjack.info "#{Time.now} logging_logger[#{Process.pid}]: INFO logging_logger : hello #{i}"
end
end
r.report 'ChronoLogger' do
TIMES.times do |i|
chrono.info "#{Time.now} logging_logger[#{Process.pid}]: INFO logging_logger : hello #{i}"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment