# File lib/daemons/syslogio.rb, line 58
  def initialize(*options)
    options.each do |option|
      if option.is_a?(String)
        @ident = option
      elsif value = self.class.syslog_facility(option)
        @facility = value
      elsif value = self.class.syslog_level(option)
        @level = value
      elsif value = self.class.syslog_option(option)
        @options = 0 if @options.nil?
        @options |= value
      elsif option.is_a?(IO)
        @out = option
      else
        raise ArgumentError, "Unknown argument #{option.inspect}"
      end
    end

    @options ||= 0
    @ident ||= $0.sub(/.*\//, '')
    @facility ||= Syslog::LOG_USER
    @level ||= Syslog::LOG_INFO

    if Syslog.opened? then
      options = Syslog.options | @options
      @syslog = Syslog.reopen(@ident, options, @facility)
    else
      @syslog = Syslog.open(@ident, @options, @facility)
    end

    @subs = []
    @sync = false
    @buffer = ''

    at_exit { flush }
  end