Python 實現日誌同時輸出到螢幕和檔案
阿新 • • 發佈:2020-02-20
1. 日誌輸出到螢幕
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import absolute_import from __future__ import division from __future__ import print_function import logging logging.basicConfig(level=logging.NOTSET,format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') logging.debug('This is a debug message.') logging.info('This is an info message.') logging.warning('This is a warning message.') logging.error('This is an error message.') logging.critical('This is a critical message.')
預設的 level 是 logging.WARNING,低於這個級別的就不輸出了。如果需要顯示低於 logging.WARNING 級別的內容,可以引入 logging.NOTSET 級別來顯示。
DEBUG - 列印全部的日誌。詳細的資訊,通常只出現在診斷問題上。
INFO - 列印 INFO、WARNING、ERROR、CRITICAL 級別的日誌。確認一切按預期執行。
WARNING - 列印 WARNING、ERROR、CRITICAL 級別的日誌。表明一些問題在不久的將來,這個軟體還能按預期工作。
ERROR - 列印 ERROR、CRITICAL 級別的日誌。更嚴重的問題,軟體沒能執行一些功能。
CRITICAL : 列印 CRITICAL 級別。一個嚴重的錯誤,表明程式本身可能無法繼續執行。
/usr/bin/python2.7 /home/strong/git_workspace/MonoGRNet/test.py 2019-06-26 16:00:45,990 - root - DEBUG - This is a debug message. 2019-06-26 16:00:45,990 - root - INFO - This is an info message. 2019-06-26 16:00:45,990 - root - WARNING - This is a warning message. 2019-06-26 16:00:45,990 - root - ERROR - This is an error message. 2019-06-26 16:00:45,990 - root - CRITICAL - This is a critical message. Process finished with exit code 0
2. 日誌輸出到檔案
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import absolute_import from __future__ import division from __future__ import print_function import logging import os.path import time logger = logging.getLogger() logger.setLevel(logging.DEBUG) time_line = time.strftime('%Y%m%d%H%M',time.localtime(time.time())) print(os.getcwd()) log_path = os.path.dirname(os.getcwd()) + '/' logfile = log_path + time_line + '.log' handler = logging.FileHandler(logfile,mode='w') handler.setLevel(logging.INFO) formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s") handler.setFormatter(formatter) logger.addHandler(handler) logger.debug('This is a debug message.') logger.info('This is an info message.') logger.warning('This is a warning message.') logger.error('This is an error message.') logger.critical('This is a critical message.')
/usr/bin/python2.7 /home/strong/git_workspace/MonoGRNet/test.py /home/strong/git_workspace/MonoGRNet Process finished with exit code 0
201906261627.log
2019-06-26 16:27:26,899 - test.py[line:30] - INFO: This is an info message. 2019-06-26 16:27:26,899 - test.py[line:31] - WARNING: This is a warning message. 2019-06-26 16:27:26,899 - test.py[line:32] - ERROR: This is an error message. 2019-06-26 16:27:26,899 - test.py[line:33] - CRITICAL: This is a critical message.
3. 日誌同時輸出到螢幕和檔案
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import absolute_import from __future__ import division from __future__ import print_function import logging import os.path import time logger = logging.getLogger(__name__) logger.setLevel(level=logging.DEBUG) time_line = time.strftime('%Y%m%d%H%M',mode='w') handler.setLevel(logging.INFO) formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s") handler.setFormatter(formatter) console = logging.StreamHandler() console.setLevel(logging.WARNING) logger.addHandler(handler) logger.addHandler(console) logger.debug('This is a debug message.') logger.info('This is an info message.') logger.warning('This is a warning message.') logger.error('This is an error message.') logger.critical('This is a critical message.')
/usr/bin/python2.7 /home/strong/git_workspace/MonoGRNet/test.py /home/strong/git_workspace/MonoGRNet This is a warning message. This is an error message. This is a critical message. Process finished with exit code 0
201906261636.log
2019-06-26 16:36:38,385 - test.py[line:34] - INFO: This is an info message. 2019-06-26 16:36:38,385 - test.py[line:35] - WARNING: This is a warning message. 2019-06-26 16:36:38,385 - test.py[line:36] - ERROR: This is an error message. 2019-06-26 16:36:38,385 - test.py[line:37] - CRITICAL: This is a critical message.
以上這篇Python 實現日誌同時輸出到螢幕和檔案就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。