import logging


def get_logger(name):
    """
    Internally calls the logging.getLogger function with the 'name' argument to create or 
    retrieve a logger object. It is recommended to pass __name__ as argument when calling 
    get_logger. The returned logger object logs to the standard error stream and formats
    the messages appropriately.

    :param name: The name that gets passed to the logger.getLogger function.
    :return: A logger instance with the given name.
    """
    logger = logging.getLogger(name)
    logger.setLevel(logging.INFO)
    stderr_handler = logging.StreamHandler()
    formatter = logging.Formatter('[%(asctime)s] %(levelname)s | %(name)s | %(message)s')
    stderr_handler.setFormatter(formatter)
    logger.addHandler(stderr_handler)
    return logger