'Unable to generate the logs into a file in Python using logger module

I'm trying to generate the logs to a file called 'app.log' but it is giving me error. If I comment that this line logging.basicConfig(filename='app.log', level=logging.INFO) then the program do not give any error. Not sure what mistake I'm doing in generating the logs to this custom file.

This is my Python code:-

import logging, platform
from logging import Logger
from logging.handlers import SysLogHandler


class HostnameFilter(logging.Filter):
    hostname = platform.node()

    def filter(self, record):
        record.hostname = HostnameFilter.hostname
        return True


def get_logger(logger_name) -> Logger:
    """Return log handler for the file
    Args:
        logger_name: caller file name

    Returns:
        Logger: log handle
    """
    logger = logging.getLogger(logger_name)
    logger.setLevel(logging.INFO)
    formatter = logging.Formatter("[%(asctime)s - %(hostname)s - %(name)s:%(lineno)d - %(levelname)s] : %(message)s")
    
    logging.basicConfig(filename='app.log', level=logging.INFO)
    #file_handler = logging.FileHandler('app.log')
    #file_handler.setFormatter(formatter)
    #if (logger.hasHandlers()):
     #   logger.handlers.clear()
    #logger.addHandler(file_handler)

    streamhandler = logging.StreamHandler()
    streamhandler.setLevel(logging.INFO)
    streamhandler.addFilter(HostnameFilter())
    streamhandler.setFormatter(formatter)

    logger.addHandler(streamhandler)
    syslog_formatter =logging.Formatter(fmt="%(hostname)s %(name)s: %(msg)s")
    syslog_handler = SysLogHandler(facility=SysLogHandler.LOG_LOCAL6)
    syslog_handler.addFilter(HostnameFilter())
    syslog_handler.setFormatter(syslog_formatter)
    logger.addHandler(syslog_handler)

    return logger


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source