Python的log


關鍵代碼

調用方:

 1 from Logger import MyLogger
 2 import logging
 3 import sys, os
 4 
 5 def getLogger():
 6     # get the file name
 7     fileUrl = sys.argv[0]
 8     filepath, tmpfilename = os.path.split(fileUrl)
 9     shotname, extension = os.path.splitext(tmpfilename)
10     
11     # get the logger object
12     logger = MyLogger(logname='log.txt', loglevel=1, logger=shotname).getlog()
13     return logger
14 
15 logger =getLogger()
16 logger.debug("Hoory, show!")

 

Logger.py

 1 #開發一個日志系統, 既要把日志輸出到控制台, 還要寫入日志文件  
 2 import logging
 3 
 4 class MyLogger():
 5     format_dict = {
 6         1 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'),
 7         2 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'),
 8         3 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'),
 9         4 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'),
10         5 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
11     }
12 
13     def __init__(self, logname, loglevel, logger):
14         '''
15            指定保存日志的文件路徑,日志級別,以及調用文件
16            將日志存入到指定的文件中
17         '''
18 
19         # 創建一個logger
20         self.logger = logging.getLogger(logger)
21         self.logger.setLevel(logging.DEBUG)
22 
23         # 創建一個handler,用於寫入日志文件
24         fh = logging.FileHandler(logname)
25         fh.setLevel(logging.DEBUG)
26 
27         # 再創建一個handler,用於輸出到控制台
28         ch = logging.StreamHandler()
29         ch.setLevel(logging.DEBUG)
30 
31         # 定義handler的輸出格式
32         formatter = logging.Formatter('%(asctime)s %(name)s %(thread)d %(levelname)s %(message)s')
33         fh.setFormatter(formatter)
34         ch.setFormatter(formatter)
35 
36         # only first time need to add the handler
37         if(self.logger.hasHandlers() == False):
38             self.logger.addHandler(fh)
39             self.logger.addHandler(ch)
40 
41    
42     def getlog(self):
43         return self.logger

 

Logger相關屬性

可以通過下面的代碼來進行設置(基本上不需要這么設置,因為通過getlogger()獲取的logger對象並沒有集成root的相關配置):

1 logging.basicConfig(filename="log2.txt", level=logging.WARNING)

 

 

關於format

 


免責聲明!

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



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