1. 程式人生 > >python logging模組程式碼示例:實現日誌輸出到控制檯, 並且寫入日誌檔案中

python logging模組程式碼示例:實現日誌輸出到控制檯, 並且寫入日誌檔案中

import logging

class Logger(object):

    def __init__(self, log_file_name, log_level, logger_name):

        #建立一個logger
        self.__logger = logging.getLogger(logger_name)

        #指定日誌的最低輸出級別,預設為WARN級別
        self.__logger.setLevel(log_level)

        #建立一個handler用於寫入日誌檔案
        file_handler = logging.FileHandler(log_file_name)

        #建立一個handler用於輸出控制檯
        console_handler = logging.StreamHandler()

        #定義handler的輸出格式
        formatter = logging.Formatter('[%(asctime)s] - [logger name :%(name)s] - [%(filename)s file line:%(lineno)d] - %(levelname)s: %(message)s')
        file_handler.setFormatter(formatter)
        console_handler.setFormatter(formatter)

        # 給logger新增handler
        self.__logger.addHandler(file_handler)
        self.__logger.addHandler(console_handler)


    def get_log(self):
        return self.__logger



if __name__ == '__main__':
    logger = Logger(log_file_name='log.txt', log_level=logging.DEBUG, logger_name="test").get_log()
    logger.debug('testing ... ')
    logger.info('testing ... ')