481: def initialize(args)
482: unless args.include?(:level) && args.include?(:message)
483: raise ArgumentError, "Puppet::Util::Log called incorrectly"
484: end
485:
486: if args[:level].class == String
487: @level = args[:level].intern
488: elsif args[:level].class == Symbol
489: @level = args[:level]
490: else
491: raise ArgumentError, "Level is not a string or symbol: #{args[:level].class}"
492: end
493:
494: @message = args[:message].to_s
495: @time = Time.now
496:
497: raise ArgumentError, "Invalid log level %s" % level unless self.class.validlevel?(level)
498:
499: if tags = args[:tags]
500: tags.each { |t| self.tag(t) }
501: end
502:
503: self.source = args[:source] || "Puppet"
504:
505:
506: tag(level)
507:
508: Log.newmessage(self)
509: end