python單例模式-logging日志


單例模式:

不管實例化對象多少次,都只返回第一次實例化的對象空間。

 

單例的目的是:

為了節省開辟對象空間及銷毀對象空間的時間。

 

單例日志的寫法:

import logging

log_path
= r'D:\log\t.txt'
# 單例模式 class Log(object):
__flag = None
def __new__(cls, *args, **kwargs): if not cls.__flag: cls.__flag = super().__new__(cls) return cls.__flag def __init__(self): if 'logger' not in self.__dict__: logger = logging.getLogger() logger.setLevel(level=logging.DEBUG) filehandle = logging.FileHandler(log_path,encoding='utf-8') streamhandle = logging.StreamHandler() logger.addHandler(filehandle) logger.addHandler(streamhandle) format = logging.Formatter('%(asctime)s:%(levelname)s:%(lineno)s %(message)s') filehandle.setFormatter(format) streamhandle.setFormatter(format)
self.logger
= logger def return_logger(self): return self.logger def get_logger(): return Log().return_logger() if __name__ == '__main__': logger = get_logger() logger.debug('zezhou')

 注:文件不需要單獨去判斷創建文件,沒有會自動創建

 


免責聲明!

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



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