log輸出到日志和控制台


新增Log類,輸出日志到文件

import os
import logging

PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)

class Log(object):
    """
    log類
    """
    def __init__(self):
        global logger, logPath, resultPath
        resultPath = PATH('../logs')
        # logPath = os.path.join(resultPath, time.strftime('%Y%m%d%H%M%S', time.localtime()))

        # if not os.path.exists(logPath):
        #     os.mkdir(logPath)
        if not os.path.exists(resultPath):
            os.mkdir(resultPath)

        # 創建logger,設置日志等級
        # DEBUG INFO WARNING ERROR CRITICAL等級依次遞增
        self.logger = logging.getLogger()
        self.logger.setLevel(logging.INFO)

        # 創建handler,輸出日志到文件
        # fh = logging.FileHandler(os.path.join(logPath, 'outPut.log'), encoding='utf-8', mode='a')
        fh = logging.FileHandler(os.path.join(resultPath, 'outPut.log'), encoding='utf-8', mode='a')
        formatter = logging.Formatter('%(asctime)s  - %(levelname)s - %(message)s')
        fh.setFormatter(formatter)

        # 創建handler,輸出日志到terminal
        ch = logging.StreamHandler()
        formatter = logging.Formatter('%(asctime)s  - %(levelname)s - %(message)s')
        ch.setFormatter(formatter)

        # if str(self.logger.handlers) == '[]':
        if not self.logger.handlers:
            self.logger.addHandler(fh)
            self.logger.addHandler(ch)
        else:
            self.logger.info('log handler已存在')

        ch.close()
        fh.close()

    def getLogger(self):
        """
        get logger
        :return:
        """
        return self.logger

if __name__ == '__main__':
    my_log = Log()
    my_log.logger.info('test info')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM