    # File lib/needle/log-factory.rb, line 184
        def get( name )
          name = name.fullname if name.respond_to?( :fullname )
          name = name.name if name.respond_to?( :name )
          name = name.to_s

          # the common case first, outside the synchronize, for speed
          return @loggers[ name ] if @loggers[ name ]

          @mutex.synchronize do
            # check again, inside the synchronize, to avoid race conditions
            return @loggers[ name ] if @loggers[ name ]

            definition = find_definition( name )

            level = definition[ :level ] || @default_level
            date_format = definition[ :date_format ] || @default_date_format
            message_format = definition[ :message_format ] ||
              @default_message_format

            level = LEVEL_TRANSLATOR[ level.to_s.upcase ] || level

            logger = Needle::Logger.new( @device )
            logger.level = level if level
            logger.progname = name
            logger.datetime_format = date_format if date_format
            logger.message_format = message_format if message_format

            @loggers[ name ] = logger
            return logger
          end
        end