# File lib/puppet/util/log.rb, line 397
397:     def Log.newdestination(dest)
398:         # Each destination can only occur once.
399:         if @destinations.find { |name, obj| obj.name == dest }
400:             return
401:         end
402: 
403:         name, type = @desttypes.find do |name, klass|
404:             klass.match?(dest)
405:         end
406: 
407:         unless type
408:             raise Puppet::DevError, "Unknown destination type %s" % dest
409:         end
410: 
411:         begin
412:             if type.instance_method(:initialize).arity == 1
413:                 @destinations[dest] = type.new(dest)
414:             else
415:                 @destinations[dest] = type.new()
416:             end
417:         rescue => detail
418:             if Puppet[:debug]
419:                 puts detail.backtrace
420:             end
421: 
422:             # If this was our only destination, then add the console back in.
423:             if @destinations.empty? and (dest != :console and dest != "console")
424:                 newdestination(:console)
425:             end
426:         end
427:     end