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

Python 中借助日志記錄庫(kù)使用 Log4j的過程記錄

 更新時(shí)間:2023年07月10日 15:19:36   作者:跡憶客  
這篇文章主要介紹了在 Python 中借助日志記錄庫(kù)使用 Log4j,本文解釋了什么是 log4j,它是如何工作的,以及我們?yōu)槭裁匆褂盟?,需要的朋友可以參考?/div>

本文解釋了什么是 log4j,它是如何工作的,以及我們?yōu)槭裁匆褂盟?我們還將了解如何借助日志庫(kù)在 Python 編程語(yǔ)言中使用 log4j。

Log4j 概述及其使用重要性

log4j 是程序員在應(yīng)用程序中記錄數(shù)據(jù)時(shí)用來(lái)幫助他們的一款軟件。 而且,記錄數(shù)據(jù)意味著記錄在應(yīng)用程序中執(zhí)行的活動(dòng)或操作。

出于安全原因,我們可以使用 log4j,例如查看各種身份驗(yàn)證。 但是,它也可以用于記錄應(yīng)用程序中發(fā)生的事情以進(jìn)行調(diào)試。

或者大致了解應(yīng)用程序一直在做什么。 例如,log4j 是 Java 編程語(yǔ)言中的一個(gè)框架,它是一個(gè)半構(gòu)建應(yīng)用程序。

同樣,在 Python 中,我們使用了日志記錄模塊而不是 log4j。 日志記錄是將應(yīng)用程序操作和狀態(tài)記錄到輔助接口的過程。 換句話說(shuō),將您的程序操作寫入一個(gè)文件,但是您如何開始記錄呢?

那么,您需要熟悉日志記錄級(jí)別。 每個(gè)日志庫(kù)都允許您在特定級(jí)別鎖定信息。 您必須了解五個(gè)主要的日志記錄級(jí)別。

級(jí)別說(shuō)明
debug調(diào)試級(jí)別用于開發(fā)過程或錯(cuò)誤修復(fù)和故障排除。 所有特定于開發(fā)人員的信息都在這一層之下。
info信息級(jí)別用于記錄程序的任何重要默認(rèn)操作,例如默認(rèn)用戶或系統(tǒng)查看操作。
warning警告級(jí)別用于記錄從長(zhǎng)遠(yuǎn)來(lái)看可能成為錯(cuò)誤的事件。 此日志記錄級(jí)別應(yīng)該可以幫助您追蹤錯(cuò)誤。
error錯(cuò)誤級(jí)別用于記錄錯(cuò)誤,錯(cuò)誤是會(huì)以某種錯(cuò)誤方式影響程序執(zhí)行的錯(cuò)誤。
critical臨界級(jí)別為世界末日; 該程序已死或已嚴(yán)重?fù)p壞。

在 Python 中的日志記錄庫(kù)的幫助下使用 Log4j

現(xiàn)在我們只是運(yùn)行一個(gè)簡(jiǎn)單的基本代碼,并沒有這樣的邏輯,但我們想向您展示一些理解,比如如何將所有日志寫入一個(gè)文件。

讓我們進(jìn)入代碼,首先配置日志系統(tǒng),調(diào)用 basicConfig() 方法,并使用 filename 參數(shù)傳入文件名。 Python 會(huì)將所有日志消息寫入此文件; 如果它不存在,Python 將創(chuàng)建它。

后面的參數(shù)是filemode,意思是file mode就是說(shuō)是append mode到write mode還是隨便你放什么,默認(rèn)情況下,文件會(huì)以append mode創(chuàng)建。 接下來(lái)是表示asctime、levelname、message等很多信息的格式。

asctime 基本上顯示了它在這個(gè)與日志相關(guān)的特定文本文件中打印的時(shí)間類型。 第二個(gè)參數(shù)值是一個(gè)叫做levelname的東西; 這個(gè)參數(shù)告訴我們?cè)趫?zhí)行過程中發(fā)生了什么樣的錯(cuò)誤。

該消息是我們?cè)噲D在該日志消息中打印的所有消息。 我們正在使用 datefmt; 此參數(shù)將按特定順序打印時(shí)間。

basicConfig() 函數(shù)有一個(gè)不同的屬性,我們可以從這里閱讀所有屬性。

import logging
logging.basicConfig(filename='demo.txt',
                    filemode='a',
                    format='%(asctime)s %(levelname)s-%(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')
Now we have written a simple logic where we compare the percentile with some numbers and append some logs inside the text file.
for i in range(0,15):
    if i%2==0:
        logging.error('Log error message')
    elif i%3==0:
        logging.warning('Log warning message')
    elif i%5==0:
        logging.debug('Log debug message') 
    elif i%7==0:
        logging.critical('Log critical message')
    else:
        logging.info('Log info message')

輸出:

2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 WARNING-Log warning message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 CRITICAL-Log critical message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 WARNING-Log warning message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message

運(yùn)行程序后,我們可以注意到文本文件中沒有添加信息和調(diào)試日志,因?yàn)槟J(rèn)情況下,levelname 調(diào)用錯(cuò)誤,錯(cuò)誤級(jí)別不顯示信息和調(diào)試。

但是,我們可以通過在傳遞 logging.DEBUG 時(shí)使用 level 參數(shù)來(lái)使用其他級(jí)別。

level=logging.DEBUG

現(xiàn)在,如果我們運(yùn)行并打開 demo.txt 文件,我們將看到所有日志消息,但如果我們將日志級(jí)別更新為 logging.ERROR,我們將看到錯(cuò)誤和關(guān)鍵消息。

2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 INFO-Log info message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 WARNING-Log warning message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 DEBUG-Log debug message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 CRITICAL-Log critical message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 WARNING-Log warning message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 INFO-Log info message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 INFO-Log info message
2022-09-01 23:23:57 ERROR-Log error message

讓我們來(lái)看一個(gè)常見的問題,我們要將任何數(shù)字除以零。 要確定此操作,我們將使用 try 塊。

如果操作失敗,我們將進(jìn)入 except 塊并顯示日志錯(cuò)誤。

try:
    1/0
except:
    logging.error('Log zero division error occurs')

輸出:

2022-09-02 00:29:48 ERROR-Log zero division error occurs

它是項(xiàng)目的重要組成部分,因?yàn)闊o(wú)論何時(shí)處理項(xiàng)目,您都可能必須編寫這種日志記錄機(jī)制。

完整的 Python 代碼:

import logging
logging.basicConfig(filename='demo.txt',
                    filemode='w',
                    format='%(asctime)s %(levelname)s-%(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S',
                    level=logging.DEBUG)
# for i in range(0,15):
#     if i%2==0:
#         logging.error('Log error message')
#     elif i%3==0:
#         logging.warning('Log warning message')
#     elif i%5==0:
#         logging.debug('Log debug message') 
#     elif i%7==0:
#         logging.critical('Log critical message')
#     else:
#         logging.info('Log info message')
try:
    1/0
except:
    logging.error('Log zero division error occurs')

到此這篇關(guān)于在 Python 中借助日志記錄庫(kù)使用 Log4j的文章就介紹到這了,更多相關(guān)Python日志記錄庫(kù)使用 Log4j內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python批量創(chuàng)建迅雷任務(wù)及創(chuàng)建多個(gè)文件

    Python批量創(chuàng)建迅雷任務(wù)及創(chuàng)建多個(gè)文件

    其實(shí)不是真的創(chuàng)建了批量任務(wù),而是用python創(chuàng)建一個(gè)文本文件,每行一個(gè)要下載的鏈接,然后打開迅雷,復(fù)制文本文件的內(nèi)容,迅雷監(jiān)測(cè)到剪切板變化,彈出下載全部鏈接的對(duì)話框
    2016-02-02
  • 淺析python中numpy包中的argsort函數(shù)的使用

    淺析python中numpy包中的argsort函數(shù)的使用

    這篇文章主要介紹了python中numpy包中的argsort函數(shù)的使用,argsort()函數(shù)在模塊numpy.core.fromnumeric中,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2018-08-08
  • Python構(gòu)建圖像分類識(shí)別器的方法

    Python構(gòu)建圖像分類識(shí)別器的方法

    今天小編就為大家分享一篇Python構(gòu)建圖像分類識(shí)別器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-01-01
  • Python讀取Ansible?playbooks返回信息示例解析

    Python讀取Ansible?playbooks返回信息示例解析

    這篇文章主要為大家介紹了Python讀取Ansible?playbooks返回信息示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 淺析python,PyCharm,Anaconda三者之間的關(guān)系

    淺析python,PyCharm,Anaconda三者之間的關(guān)系

    Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,簡(jiǎn)單來(lái)說(shuō),python就是類似于C,Java,C++等,一種編程語(yǔ)言。這篇文章主要介紹了淺析python,PyCharm,Anaconda三者之間的關(guān)系,需要的朋友可以參考下
    2019-11-11
  • Python分布式進(jìn)程中你會(huì)遇到的問題解析

    Python分布式進(jìn)程中你會(huì)遇到的問題解析

    這篇文章主要介紹了Python分布式進(jìn)程中你會(huì)遇到的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • 深入探索Django中間件的應(yīng)用場(chǎng)景

    深入探索Django中間件的應(yīng)用場(chǎng)景

    Django中間件是一種可插拔的應(yīng)用程序組件,可在請(qǐng)求和響應(yīng)處理過程中修改Django的行為。中間件可用于處理請(qǐng)求、響應(yīng)、異常等,還可用于實(shí)現(xiàn)身份驗(yàn)證、緩存、性能監(jiān)控等常用功能。通過深入探索中間件的應(yīng)用場(chǎng)景,可以提高Django應(yīng)用程序的可擴(kuò)展性和靈活性
    2023-05-05
  • Python中的自定義函數(shù)學(xué)習(xí)筆記

    Python中的自定義函數(shù)學(xué)習(xí)筆記

    這篇文章主要介紹了Python中的自定義函數(shù)學(xué)習(xí)筆記,本文講解了定義函數(shù)、callable函數(shù)、help函數(shù)等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • python中np.zeros_like函數(shù)用法詳解

    python中np.zeros_like函數(shù)用法詳解

    這篇文章主要介紹了python中np.zeros_like函數(shù)用法的相關(guān)資料,np.zeros_like是?NumPy?庫(kù)中的一個(gè)函數(shù),用于創(chuàng)建一個(gè)與給定數(shù)組形狀和類型相同的新數(shù)組,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • Python中while循環(huán)常見用法與實(shí)戰(zhàn)代碼

    Python中while循環(huán)常見用法與實(shí)戰(zhàn)代碼

    while是Python中的條件循環(huán)語(yǔ)句,只要條件為True,就會(huì)持續(xù)執(zhí)行循環(huán)體,與for不同,while循環(huán)更適合于不確定循環(huán)次數(shù)、需要根據(jù)條件退出的場(chǎng)景,這篇文章主要介紹了Python中while循環(huán)常見用法與實(shí)戰(zhàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2026-05-05

最新評(píng)論

洛宁县| 吉水县| 北票市| 伊通| 九台市| 呼图壁县| 天全县| 德昌县| 元朗区| 工布江达县| 乐都县| 合山市| 商洛市| 方山县| 宣汉县| 三明市| 长汀县| 射洪县| 平阴县| 辽宁省| 增城市| 江阴市| 玉田县| 邵阳市| 通化市| 怀安县| 蒙城县| 五峰| 赣州市| 金川县| 和平县| 永宁县| 株洲市| 北辰区| 平果县| 彭山县| 苏尼特左旗| 贡嘎县| 兴国县| 宽城| 三都|