2014-05-23 41 views
0

我想爲我的應用程序使用兩個日誌文件(access_log & error_log)。 這裏是我此設置:使用多個日誌文件,但只有一個實際上正在工作

errorlog.error("message") # this works 

記錄與.error()消息實際上是保存到日誌文件,但不能:

# setup logging 
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') 

# access file logger 
accesslog = logging.getLogger('simple_logger') 
hdlr_1 = logging.FileHandler("C:\Users\xxx\code\log\access_log") 
hdlr_1.setLevel(logging.INFO) 
hdlr_1.setFormatter(formatter) 
accesslog.addHandler(hdlr_1) 

# error file logger 
errorlog = logging.getLogger('simple_logger_2') 
hdlr_2 = logging.FileHandler("C:\Users\xxx\code\log\access_log")  
hdlr_2.setFormatter(formatter) 
errorlog.addHandler(hdlr_2) 

# log access 
accesslog.info('Process started') # this doesn't work 
accesslog.error('Process started') # this works 

當一個錯誤在某些時候拋出我使用其記錄使用info()登錄的人。

我加入了.setLevel(logging.INFO)到ACCESSLOG處理,但仍然沒有成功...

回答

0

找到了解決辦法:

hdlr_1.setLevel(logging.INFO) 

成爲

accesslog.setLevel(logging.INFO) 

,現在它的工作原理。這很奇怪,因爲根據python27 doc它說如果你不設置日誌記錄級別,它將默認設置爲NOTSET意思是全部消息級別被處理,但它似乎不是真實的。

+0

記錄器上的級別與處理程序上的級別不同。請參閱https://docs.python.org/2/howto/logging.html#logging-flow –

相關問題