lib/slogger/logger.rb in slogger-0.0.1 vs lib/slogger/logger.rb in slogger-0.0.2
- old
+ new
@@ -61,22 +61,30 @@
@level_as_int = LEVEL[level]
@facility = facility
@facility_as_int = FACILITY[facility]
end
- def method_missing(name, *args)
- if LEVEL.key? name
- log(name, args[0])
- else
- super name, *args
+ LEVEL.each_key do |level|
+ define_method level do |message, &block|
+ log(level, message, &block)
end
end
private
- def log(level, message)
+ def log(level, message, &block)
return if LEVEL[level] > @level_as_int
+ if block_given?
+ began_at = Time.now
+
+ yield
+
+ now = Time.now
+ end_at = now - began_at
+ message = "[#{end_at}s] #{message}"
+ end
+
Syslog.open(@app_name, Syslog::LOG_PID, @facility_as_int) { |s| s.send level, message }
end
end
end