Python的log

關鍵代碼spa

調用方:debug

 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相關屬性code

能夠經過下面的代碼來進行設置(基本上不須要這麼設置,由於經過getlogger()獲取的logger對象並無集成root的相關配置):orm

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

 

 

關於format對象

相關文章
相關標籤/搜索