|
# File lib/rfilter/delivery_agent.rb, line 198
def log(level, str)
if level <= 0 and @logfile.nil?
raise LoggingError, "failed to log high priority message: #{str}"
end
return if @logfile.nil? or level > @logging_level
begin
@logfile.flock(File::LOCK_EX)
@logfile.print(Time.now.strftime("%Y/%m/%d %H:%M:%S "))
@logfile.print(sprintf("%05d: ", Process.pid))
@logfile.puts(str)
@logfile.flush
@logfile.flock(File::LOCK_UN)
rescue
# FIXME: this isn't tested
raise LoggingError.new("failed to log message: #{str}", $!)
end
end
|