# File lib/puppet/util/log.rb, line 481
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:         # Tag myself with my log level
506:         tag(level)
507: 
508:         Log.newmessage(self)
509:     end