def add(severity, message = nil, progname = nil)
severity = Severity.label_to_level(severity) if severity.is_a?(String) || severity.is_a?(Symbol)
return unless severity && severity >= level
time = Time.now
if message.nil?
if block_given?
message = yield
else
message = progname
progname = nil
end
end
message = @_formatter.format(message)
progname ||= self.progname
entry = LogEntry.new(time, severity, message, progname, $$, Lumberjack.unit_of_work_id)
begin
device.write(entry)
rescue => e
$stderr.puts("#{e.class.name}: #{e.message}#{' at ' + e.backtrace.first if e.backtrace}")
$stderr.puts(entry.to_s)
end
nil
end