# 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