This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Adding Logging To Your Application | ||
|---|---|---|
| Code | Expected | Actual |
require 'logger'
$LOG = Logger.new($stderr)
def divide(numerator, denominator)
$LOG.debug("Numerator: #{numerator}, denominator #{denominator}")
begin
result = numerator / denominator
rescue Exception => e
$LOG.error "Error in division!: #{e}"
result = nil
end
return result
end
divide(10, 2) |
D, [2006-03-31T19:35:01.043938 #18088] DEBUG -- : Numerator: 10, denominator 2 |
|
divide(10, 0) |
D, [2006-03-31T19:35:01.045230 #18088] DEBUG -- : Numerator: 10, denominator 0 E, [2006-03-31T19:35:01.045495 #18088] ERROR -- : Error in division!: divided by 0 |
|
divide(10, 2) |
5 | 5 |
divide(10, 0) |
E, [2006-03-31T19:35:01.047861 #18088] ERROR -- : Error in division!: divided by 0 |
|
Logger.new('this_month.log', 'monthly') |
Keep data for today and the past 20 days. |
|
Logger.new('application.log', 20, 'daily') |
Start the log over whenever the log exceeds 100 megabytes in size. |
|
Logger.new('application.log', 20, 'daily')
class Logger
class Formatter
Format = "%s [%s] %s %s\n"
def call(severity, time, progname, msg)
Format % [severity, format_datetime(time), progname, msg]
end
end
end
$LOG.error('This is much shorter.') |
ERROR [2006-03-31T19:35:01.058646 ] This is much shorter. |
|