最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 實現(xiàn)日志同時輸出到屏幕和文件

 更新時間:2020年02月19日 15:27:20   作者:ForeverStrong  
這篇文章主要介紹了Python 實現(xiàn)日志同時輸出到屏幕和文件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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 級別的內(nèi)容,可以引入 logging.NOTSET 級別來顯示。

DEBUG - 打印全部的日志。詳細的信息,通常只出現(xiàn)在診斷問題上。

INFO - 打印 INFO、WARNING、ERROR、CRITICAL 級別的日志。確認一切按預(yù)期運行。

WARNING - 打印 WARNING、ERROR、CRITICAL 級別的日志。表明一些問題在不久的將來,這個軟件還能按預(yù)期工作。

ERROR - 打印 ERROR、CRITICAL 級別的日志。更嚴重的問題,軟件沒能執(zhí)行一些功能。

CRITICAL : 打印 CRITICAL 級別。一個嚴重的錯誤,表明程序本身可能無法繼續(xù)運行。

/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', 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)

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 實現(xiàn)日志同時輸出到屏幕和文件就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實現(xiàn)替換word中的關(guān)鍵文字(使用通配符)

    python實現(xiàn)替換word中的關(guān)鍵文字(使用通配符)

    今天小編就為大家分享一篇python實現(xiàn)替換word中的關(guān)鍵文字(使用通配符),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 簡單了解python單例模式的幾種寫法

    簡單了解python單例模式的幾種寫法

    這篇文章主要介紹了簡單了解python單例模式的幾種寫法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python3 自動打印出最新版本執(zhí)行的mysql2redis實例

    python3 自動打印出最新版本執(zhí)行的mysql2redis實例

    這篇文章主要介紹了python3 自動打印出最新版本執(zhí)行的mysql2redis實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python實現(xiàn)圖形用戶界面和游戲開發(fā)的方法和技巧

    Python實現(xiàn)圖形用戶界面和游戲開發(fā)的方法和技巧

    GUI圖形用戶界面編程,我們可以通過python提供的豐富的組件,快速的實現(xiàn)使用圖形的界面和用戶交互, GUI編程類似于“搭積?”,將?個個組件(Widget)放到窗?中,這篇文章主要給大家介紹了基于Python的GUI圖形用戶界面編程的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Anaconda環(huán)境改名的實現(xiàn)步驟

    Anaconda環(huán)境改名的實現(xiàn)步驟

    本文主要介紹了Anaconda環(huán)境改名的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • pytorch加載自己的數(shù)據(jù)集源碼分享

    pytorch加載自己的數(shù)據(jù)集源碼分享

    這篇文章主要介紹了pytorch加載自己的數(shù)據(jù)集源碼分享,標準的數(shù)據(jù)集流程梳理分為數(shù)據(jù)準備以及加載數(shù)據(jù)庫–>數(shù)據(jù)加載器的調(diào)用或者設(shè)計–>批量調(diào)用進行訓練或者其他作用,需要的朋友可以參考下
    2022-08-08
  • Tensorflow 如何從checkpoint文件中加載變量名和變量值

    Tensorflow 如何從checkpoint文件中加載變量名和變量值

    這篇文章主要介紹了Tensorflow 如何從checkpoint文件中加載變量名和變量值的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python的條件控制?if?語句詳解

    Python的條件控制?if?語句詳解

    Python的?if?語句用來「控制代碼」的執(zhí)行,「判斷條件成立」時執(zhí)行一段代碼,判斷條件「不成立」時執(zhí)行另一段代碼,本文就給大家詳細講講Python的條件控制?if?語句,需要的朋友可以參考下
    2023-08-08
  • 詳解PyQt5 GUI 接收UDP數(shù)據(jù)并動態(tài)繪圖的過程(多線程間信號傳遞)

    詳解PyQt5 GUI 接收UDP數(shù)據(jù)并動態(tài)繪圖的過程(多線程間信號傳遞)

    這篇文章主要介紹了PyQt5 GUI 接收UDP數(shù)據(jù)并動態(tài)繪圖(多線程間信號傳遞),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Python實現(xiàn)批量修改文件名實例

    Python實現(xiàn)批量修改文件名實例

    這篇文章主要介紹了Python實現(xiàn)批量修改文件名的方法,實例分析了兩種實現(xiàn)批量修改文件名的技巧,涉及os.rename重命名方法、正則替換及字符串操作的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07

最新評論

墨竹工卡县| 大石桥市| 武夷山市| 淅川县| 桃江县| 昭通市| 昌图县| 富源县| 平度市| 阿合奇县| 虎林市| 神池县| 海伦市| 丹阳市| 麻阳| 晋州市| 谷城县| 保德县| 黄浦区| 乃东县| 雷波县| 新建县| 呼图壁县| 玉田县| 台湾省| 磴口县| 达日县| 宝鸡市| 当涂县| 海城市| 琼海市| 德安县| 阳城县| 左权县| 萨嘎县| 沂源县| 白水县| 商都县| 邵阳县| 四平市| 华容县|