欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python打印帶時(shí)間的日志實(shí)現(xiàn)代碼

 更新時(shí)間:2024年04月26日 10:02:32   作者:Kwan的解憂雜貨鋪  
python的logging模塊提供了標(biāo)準(zhǔn)的日志接口,可以通過它存儲(chǔ)各種格式的日志,下面這篇文章主要給大家介紹了關(guān)于python打印帶時(shí)間的日志的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一.整體說明

1.問題背景

python 中可以使用 print 進(jìn)行日志打印,但是打印的很亂,而且不帶時(shí)間,看上去很不美觀,需要自定義一個(gè)帶不同日志等級的工具

2.print 用法

在 Python 中,print 是一個(gè)內(nèi)置函數(shù),用于將文本或其他對象的表示輸出到標(biāo)準(zhǔn)輸出(通常是控制臺(tái))。它是一種常用的調(diào)試和輸出信息的方式。

print 函數(shù)的基本語法如下:

print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

其中:

  • value1, value2, ... 是要打印的值或?qū)ο?。多個(gè)值之間可以用逗號分隔。
  • sep 是用于分隔多個(gè)值之間的字符串,默認(rèn)為一個(gè)空格。
  • end 是打印結(jié)束時(shí)的字符串,默認(rèn)為換行符 \n。
  • file 是輸出的文件對象,默認(rèn)為標(biāo)準(zhǔn)輸出(控制臺(tái))。
  • flush 是一個(gè)布爾值,表示是否立即刷新輸出,默認(rèn)為 False。

以下是一些示例:

print("Hello, world!")  # 打印一個(gè)字符串

name = "Alice"
age = 25
print("Name:", name, "Age:", age)  # 打印多個(gè)值,使用默認(rèn)分隔符和換行符

print("Hello", "world", sep="-")  # 使用自定義分隔符

print("Hello", end="")  # 不換行輸出

file = open("output.txt", "w")
print("Hello, file!", file=file)  # 輸出到文件

print("Hello, flush!", flush=True)  # 立即刷新輸出

運(yùn)行上述代碼后,將會(huì)在控制臺(tái)或指定的文件中看到相應(yīng)的輸出結(jié)果。

print 函數(shù)在調(diào)試代碼、輸出程序運(yùn)行結(jié)果以及向用戶提供信息時(shí)非常有用。您可以根據(jù)需要靈活使用它來滿足不同的打印需求

3.日志等級

在軟件開發(fā)和日志記錄中,常用的日志等級(Log Levels)通常遵循以下標(biāo)準(zhǔn)的層次結(jié)構(gòu):

  • DEBUG(調(diào)試):最低級別的日志,用于輸出詳細(xì)的調(diào)試信息。通常僅在開發(fā)和調(diào)試階段使用,用于追蹤代碼執(zhí)行過程中的細(xì)節(jié)。

  • INFO(信息):用于輸出程序運(yùn)行中的一般信息,如程序啟動(dòng)、關(guān)鍵事件、操作成功等。它提供對程序行為的整體了解。

  • WARNING(警告):用于輸出可能導(dǎo)致問題或潛在錯(cuò)誤的警告信息,不會(huì)導(dǎo)致程序中斷或出現(xiàn)致命錯(cuò)誤,但需要引起注意。

  • ERROR(錯(cuò)誤):用于輸出錯(cuò)誤信息,表示程序在某個(gè)特定點(diǎn)發(fā)生了錯(cuò)誤,但并不會(huì)導(dǎo)致程序終止。錯(cuò)誤日志通常指示程序出現(xiàn)了預(yù)料之外的情況。

  • CRITICAL(嚴(yán)重):最高級別的日志,用于輸出嚴(yán)重錯(cuò)誤和致命錯(cuò)誤。表示程序遇到了無法繼續(xù)執(zhí)行的嚴(yán)重問題,并可能導(dǎo)致程序崩潰或無法正常運(yùn)行。

此外,還存在一些其他的日志等級,其具體名稱和定義可能會(huì)根據(jù)不同的日志庫和框架而有所差異。例如:

  • TRACE(跟蹤):比 DEBUG 更詳細(xì)的日志級別,用于輸出比調(diào)試級別更細(xì)粒度的信息。
  • FATAL(致命):與 CRITICAL 等價(jià),用于表示致命錯(cuò)誤。

請注意,不同的日志庫和框架可能對這些日志等級的命名和定義有所差異。在實(shí)際使用時(shí),您可以根據(jù)具體的需求和日志記錄庫的文檔來選擇適合的日志等級。

二.代碼實(shí)現(xiàn)

1.完整代碼

import logging

class TimeStampedLogger:
    def __init__(self, log_level=logging.INFO):
        self.logger = self._configure_logger(log_level)

    def _configure_logger(self, log_level):
        logger = logging.getLogger(__name__)
        logger.setLevel(log_level)

        formatter = logging.Formatter('%(asctime)s - %(message)s')

        stream_handler = logging.StreamHandler()
        stream_handler.setFormatter(formatter)
        logger.addHandler(stream_handler)

        return logger

    def info(self, message):
        self.logger.info(message)

    def debug(self, message):
        self.logger.debug(message)

logger = TimeStampedLogger()

2.擴(kuò)展方法

可以添加不同等級的日志

def info(self, message):
    self.logger.info(message)

def debug(self, message):
	self.logger.debug(message)

附:Python中打印日志,文件,行號,當(dāng)前時(shí)間

寫一個(gè)函數(shù)實(shí)現(xiàn)python的日志功能:

調(diào)用函數(shù),打印當(dāng)前時(shí)間,打印當(dāng)前行號,文件函數(shù)名稱

便于找bug

import sys,time

def Log(msg,line,name):
    #文件地址  __file__,可選添加
    date = time.strftime('%Y.%m.%d %H:%M:%S ',time.localtime(time.time()))
    print(date+':'+ msg +', Line '+line+' , in '+name)

if __name__ == '__main__':
    Log('hello',str(sys._getframe().f_lineno),sys._getframe().f_code.co_name) 

#2022.03.25 11:52:15 :hello, Line 9 , in <module>

打印結(jié)果:2022.03.25 11:52:15 :hello, Line 9 , in <module>

總結(jié) 

到此這篇關(guān)于python打印帶時(shí)間的日志實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python打印帶時(shí)間日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 多個(gè)圖同時(shí)在不同窗口顯示的實(shí)現(xiàn)方法

    Python 多個(gè)圖同時(shí)在不同窗口顯示的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇Python 多個(gè)圖同時(shí)在不同窗口顯示的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python實(shí)現(xiàn)打乒乓小游戲

    Python實(shí)現(xiàn)打乒乓小游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)打乒乓小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • python 繪制場景熱力圖的示例

    python 繪制場景熱力圖的示例

    這篇文章主要介紹了python 繪制場景熱力圖的示例,幫助大家更好的利用python繪制圖像,感興趣的朋友可以了解下
    2020-09-09
  • Django框架中模型的用法

    Django框架中模型的用法

    這篇文章介紹了Django框架中模型的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 使用Pytorch實(shí)現(xiàn)Swish激活函數(shù)的示例詳解

    使用Pytorch實(shí)現(xiàn)Swish激活函數(shù)的示例詳解

    激活函數(shù)是人工神經(jīng)網(wǎng)絡(luò)的基本組成部分,他們將非線性引入模型,使其能夠?qū)W習(xí)數(shù)據(jù)中的復(fù)雜關(guān)系,Swish 激活函數(shù)就是此類激活函數(shù)之一,在本文中,我們將深入研究 Swish 激活函數(shù),提供數(shù)學(xué)公式,探索其相對于 ReLU 的優(yōu)勢,并使用 PyTorch 演示其實(shí)現(xiàn)
    2023-11-11
  • python scatter散點(diǎn)圖用循環(huán)分類法加圖例

    python scatter散點(diǎn)圖用循環(huán)分類法加圖例

    這篇文章主要為大家詳細(xì)介紹了python scatter散點(diǎn)圖用循環(huán)分類法加圖例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 詳解python 一維、二維列表的初始化問題

    詳解python 一維、二維列表的初始化問題

    這篇文章主要介紹了python 一維、二維列表的初始化,本文通過兩種方式給大家詳細(xì)講解,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-06-06
  • OpenCV實(shí)現(xiàn)灰度、高斯模糊、邊緣檢測的示例

    OpenCV實(shí)現(xiàn)灰度、高斯模糊、邊緣檢測的示例

    這篇文章主要介紹了OpenCV實(shí)現(xiàn)灰度、高斯模糊、邊緣檢測的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python連接MySQL并使用fetchall()方法過濾特殊字符

    Python連接MySQL并使用fetchall()方法過濾特殊字符

    這篇文章主要介紹了Python連接MySQL的方法并講解了如何使用fetchall()方法過濾特殊字符,示例環(huán)境為Ubuntu操作系統(tǒng),需要的朋友可以參考下
    2016-03-03
  • Python?PyQt5中窗口數(shù)據(jù)傳遞的示例詳解

    Python?PyQt5中窗口數(shù)據(jù)傳遞的示例詳解

    開發(fā)應(yīng)用程序時(shí),若只有一個(gè)窗口則只需關(guān)心這個(gè)窗口里面的各控件之間如何傳遞數(shù)據(jù)。如果程序有多個(gè)窗口,就要關(guān)心不同的窗口之間是如何傳遞數(shù)據(jù)。本文介紹了PyQt5中三種窗口數(shù)據(jù)傳遞,需要的可以了解一下
    2022-12-12

最新評論