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

Python3如何日志同時輸出到控制臺和文件

 更新時間:2023年11月10日 11:09:09   作者:開發(fā)者超屎  
這篇文章主要介紹了Python3如何日志同時輸出到控制臺和文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Python3日志同時輸出到控制臺和文件

python3中想要將程序的日志打印到文件中,便于后期查看原因。

但是在開發(fā)階段又想讓日志打印到控制臺,這時候可以用一個類將其封裝起來,用法就跟java差不多,配置也很簡單。

需要用到python內(nèi)置模塊 logging 和其中的函數(shù)handlers。

直接上代碼

import logging
from logging import handlers
 
 
# 日志輸出
class Logger(object):
    # 日志級別關(guān)系映射
    level_relations = {
        "debug": logging.DEBUG,
        "info": logging.INFO,
        "warning": logging.WARNING,
        "error": logging.ERROR,
        "critical": logging.CRITICAL
    }
 
    def __init__(self, filename="../log/test.log", level="info", when="D", backupCount=3, fmt="%(asctime)s - %(pathname)s[line:%(lineno)d] - %"
                                                                                              "(levelname)s: %(message)s"):
        # 設(shè)置日志輸出格式
        format_str = logging.Formatter(fmt)
        # 設(shè)置日志在控制臺輸出
        streamHandler = logging.StreamHandler()
        # 設(shè)置控制臺中輸出日志格式
        streamHandler.setFormatter(format_str)
        # 設(shè)置日志輸出到文件(指定間隔時間自動生成文件的處理器  --按日生成)
        # filename:日志文件名,interval:時間間隔,when:間隔的時間單位, backupCount:備份文件個數(shù),若超過這個數(shù)就會自動刪除
        fileHandler = handlers.TimedRotatingFileHandler(filename=filename, when=when, backupCount=backupCount, encoding="utf-8")
        # 設(shè)置日志文件中的輸出格式
        fileHandler.setFormatter(format_str)
        # 設(shè)置日志輸出文件
        self.logger = logging.getLogger(filename)
        # 設(shè)置日志級別
        self.logger.setLevel(self.level_relations.get(level))
        # 將輸出對象添加到logger中
        self.logger.addHandler(streamHandler)
        self.logger.addHandler(fileHandler)

用法就跟java一樣,創(chuàng)建一個Logger對象,通過對象去操作。

log = Logger(level="debug").logger
    log.debug("debuf")
    log.info("info")
    log.warning("warning")
    log.error("error")

可以在控制臺中看到如下打印信息:

2019-07-02 21:32:25,553 - E:/python/ryan_py/tsunagaru/logger.py[line:30] - DEBUG: debuf
2019-07-02 21:32:25,625 - E:/python/ryan_py/tsunagaru/logger.py[line:31] - INFO: info
2019-07-02 21:32:25,625 - E:/python/ryan_py/tsunagaru/logger.py[line:32] - WARNING: warning
2019-07-02 21:32:25,626 - E:/python/ryan_py/tsunagaru/logger.py[line:33] - ERROR: error
 
Process finished with exit code 0

同時,還可以看到在父級同級的目錄下的/log中創(chuàng)建了一個名叫test.log的文件。

打開test.log文件,可以看到里面的內(nèi)容跟控制臺上的輸出內(nèi)容是一致的。

2019-07-02 21:32:25,553 - E:/python/ryan_py/tsunagaru/logger.py[line:30] - DEBUG: debuf
2019-07-02 21:32:25,625 - E:/python/ryan_py/tsunagaru/logger.py[line:31] - INFO: info
2019-07-02 21:32:25,625 - E:/python/ryan_py/tsunagaru/logger.py[line:32] - WARNING: warning
2019-07-02 21:32:25,626 - E:/python/ryan_py/tsunagaru/logger.py[line:33] - ERROR: error

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python進行代碼注釋的9種方式

    Python進行代碼注釋的9種方式

    編寫清晰、簡潔的代碼注釋是良好編程習(xí)慣的重要組成部分.本文給大家介紹了9個簡單易懂的代碼注釋示例,通過具體案例來展示不同類型的注釋和最佳實踐,需要的朋友可以參考下
    2026-02-02
  • python-jwt用戶認證食用教學(xué)的實現(xiàn)方法

    python-jwt用戶認證食用教學(xué)的實現(xiàn)方法

    這篇文章主要介紹了python-jwt用戶認證食用教學(xué)的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Python matplotlib實現(xiàn)圖表主題變換示例詳解

    Python matplotlib實現(xiàn)圖表主題變換示例詳解

    在畫圖的時候如果出現(xiàn)與圖表的顏色沖突或者看不清坐標(biāo)軸的情況,這時候可以通過更換坐標(biāo)軸風(fēng)格來解決,本文將為大家詳細介紹如何利用matplotlib實現(xiàn)圖表的主題樣式變換,需要的可以參考一下
    2022-03-03
  • python中溫度單位轉(zhuǎn)換的實例方法

    python中溫度單位轉(zhuǎn)換的實例方法

    在本篇文章里小編給大家整理關(guān)于python中溫度單位轉(zhuǎn)換的實例方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-12-12
  • Python基本結(jié)構(gòu)之判斷語句的用法詳解

    Python基本結(jié)構(gòu)之判斷語句的用法詳解

    在程序的設(shè)計當(dāng)中,代碼并不是逐步按照順序進行執(zhí)行的,在運行到某一行代碼當(dāng)中,需要停下進行判斷接下來將要運行到那一個分支代碼,這種判斷就代表的是分支結(jié)構(gòu)。分支結(jié)構(gòu)是可以使用?if?語句來進行判斷的,而我們本篇博客講的也是?if?語句,需要的可以了解一下
    2022-07-07
  • python opencv旋轉(zhuǎn)圖片的使用方法

    python opencv旋轉(zhuǎn)圖片的使用方法

    在圖像處理中,有的時候會有對圖片進行角度旋轉(zhuǎn)的處理,尤其是在計算機視覺中對于圖像擴充,旋轉(zhuǎn)角度擴充圖片是一種常見的處理。本文就詳細的介紹一下,感興趣的可以了解一下
    2021-06-06
  • 詳解Python并發(fā)編程之從性能角度來初探并發(fā)編程

    詳解Python并發(fā)編程之從性能角度來初探并發(fā)編程

    這篇文章主要介紹了詳解Python并發(fā)編程之從性能角度來初探并發(fā)編程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python創(chuàng)建相同值數(shù)組/列表的兩種方法

    Python創(chuàng)建相同值數(shù)組/列表的兩種方法

    眾所周知數(shù)組是一種用來在計算機中存儲連續(xù)的相同類型數(shù)值的數(shù)據(jù)結(jié)構(gòu),這篇文章主要給大家介紹了關(guān)于Python創(chuàng)建相同值數(shù)組/列表的兩種方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Pyecharts 中Geo函數(shù)常用參數(shù)的用法說明

    Pyecharts 中Geo函數(shù)常用參數(shù)的用法說明

    這篇文章主要介紹了Pyecharts 中Geo函數(shù)常用參數(shù)的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Python+OpenCV實戰(zhàn)之實現(xiàn)文檔掃描

    Python+OpenCV實戰(zhàn)之實現(xiàn)文檔掃描

    這篇文章主要為大家詳細介紹了Python+Opencv如何實現(xiàn)文檔掃描的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-09-09

最新評論

浮山县| 天水市| 芮城县| 同仁县| 清流县| 页游| 辉南县| 广汉市| 云林县| 余干县| 江华| 呼伦贝尔市| 肇庆市| 波密县| 依兰县| 稷山县| 靖边县| 沧州市| 卢龙县| 温州市| 东丰县| 宁河县| 晴隆县| 衡阳县| 青阳县| 海伦市| 延川县| 平武县| 漠河县| 从江县| 江源县| 云安县| 木兰县| 汉川市| 武强县| 永修县| 略阳县| 万全县| 靖江市| 镇巴县| 宣武区|