亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python?logging模塊的分文件存放詳析

 更新時(shí)間:2022年07月15日 15:38:19   投稿:hqx  
這篇文章主要介紹了python?logging模塊的分文件存放詳析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下

前言:

如果使用進(jìn)到的日志文件方法:logging.FileHandler,會(huì)導(dǎo)致日志信息全部存放在一個(gè)日志文件中,不利于后面對(duì)日志文件的使用。
下面分享常見(jiàn)的兩種分文件存儲(chǔ)日志的方法。
delay = True 參數(shù)避免了出現(xiàn)多進(jìn)程中讀取日志權(quán)限的問(wèn)題

TimedRotatingFileHandler 根據(jù)時(shí)間創(chuàng)建日志文件

TimedRotatingFileHandler(filename, when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False, atTime=None)

atTime 與 when參數(shù)之間的關(guān)系

RotatingFileHander 根據(jù)日志文件大小創(chuàng)建日志文件

RotatingFileHandler(filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=False)

分文件時(shí),PermissionError異常處理

異常信息:

--- Logging error ---
 Traceback (most recent call last):
 '省略部分信息'
 PermissionError: [WinError 32] 另一個(gè)程序正在使用此文件,進(jìn)程無(wú)法訪問(wèn)。

解決方法:

設(shè)置 delay=True使用第三方庫(kù) concurrent_log_handler.ConcurrentRotatingFileHandler

代碼實(shí)現(xiàn):customer_log.py

import logging
from logging import handlers
from concurrent_log_handler import ConcurrentRotatingFileHandler
def set_basic_logger():
    path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    log_path = path + '/Log/'
    log_file = log_path + 'mockSystem.log'
    err_file = log_path + 'mockSystemErr.log'
    
    # 定制輸出格式
    formatter = logging.Formatter(
        '[%(asctime)s] %(filename)s -> %(funcName)s line:%(lineno)d [%(levelname)s] : %(message)s')

    # # 所有日志在一個(gè)文件中存儲(chǔ)
    # handler = logging.FileHandler(log_file, encoding='utf-8', mode='a+')
    # 按天分文件存儲(chǔ),保存最近30天的日志
    handler = handlers.TimedRotatingFileHandler(log_file, when='d', interval=1, backupCount=30, encoding='utf-8', delay=True)
    # 按文件大小分文件存儲(chǔ),每個(gè)文件10字節(jié),保留10個(gè)文件
    # handler = handlers.RotatingFileHandler(log_file, maxBytes=10, backupCount=10,
    #                                        encoding='utf-8', delay=True)
    # 按文件大小分文件存儲(chǔ),每個(gè)文件10字節(jié),保留10個(gè)文件
    # handler = ConcurrentRotatingFileHandler(log_file, maxBytes=10, backupCount=10)
    handler.setLevel(logging.INFO)
    handler.setFormatter(formatter)
    # err_handler = ConcurrentRotatingFileHandler(err_file, encoding='utf-8', mode='a+')  # 輸出到err_log文件
    err_handler = handlers.TimedRotatingFileHandler(err_file, when='d', interval=1, backupCount=30,
                                                   encoding='utf-8', delay=True)
    # err_handler = handlers.RotatingFileHandler(err_file, maxBytes=10, backupCount=10,
    #                                            encoding='utf-8', delay=True)
    # err_handler = ConcurrentRotatingFileHandler(err_file, maxBytes=10, backupCount=10)
    err_handler.setLevel(logging.WARNING)
    err_handler.setFormatter(formatter)

    logging.basicConfig(
        level=logging.DEBUG,
        format='[%(asctime)s] %(filename)s -> %(funcName)s line:%(lineno)d [%(levelname)s] : %(message)s',
        handlers=[handler, err_handler]
    )

在項(xiàng)目主程序中使用時(shí):main.py

from customer_log imoprt set_basic_logger
import mu
set_basic_logger()
mu.show_cur_info()

在項(xiàng)目其他模塊使用時(shí):mu.py

import logging
def show_cur_info():
	msg = 'dddddd'
	print(msg)
	logging.info(msg

到此這篇關(guān)于python logging模塊的分文件存放詳析的文章就介紹到這了,更多相關(guān)python logging模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 簡(jiǎn)單了解為什么python函數(shù)后有多個(gè)括號(hào)

    簡(jiǎn)單了解為什么python函數(shù)后有多個(gè)括號(hào)

    這篇文章主要介紹了簡(jiǎn)單了解為什么python函數(shù)后有多個(gè)括號(hào),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python列表生成式與生成器操作示例

    Python列表生成式與生成器操作示例

    這篇文章主要介紹了Python列表生成式與生成器操作,結(jié)合實(shí)例形式分析了Python列表生成式與生成器的功能、使用方法及相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • 使用Python 統(tǒng)計(jì)高頻字?jǐn)?shù)的方法

    使用Python 統(tǒng)計(jì)高頻字?jǐn)?shù)的方法

    今天小編就為大家分享一篇使用Python 統(tǒng)計(jì)高頻字?jǐn)?shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 使用TensorBoard進(jìn)行超參數(shù)優(yōu)化的實(shí)現(xiàn)

    使用TensorBoard進(jìn)行超參數(shù)優(yōu)化的實(shí)現(xiàn)

    這篇文章主要介紹了使用TensorBoard進(jìn)行超參數(shù)優(yōu)化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 20個(gè)超實(shí)用Python自動(dòng)化腳本分享

    20個(gè)超實(shí)用Python自動(dòng)化腳本分享

    在當(dāng)今的快節(jié)奏工作環(huán)境中,自動(dòng)化不再是一種奢侈,而是提高效率和精確性的必需手段,這篇文章為大家整理了20個(gè)超實(shí)用Python自動(dòng)化腳本,希望對(duì)大家有所幫助
    2024-01-01
  • 利用pyinstaller打包exe文件的基本教程

    利用pyinstaller打包exe文件的基本教程

    這篇文章主要給大家介紹了關(guān)于利用pyinstaller打包exe文件的基本方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用pyinstaller具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • python雙向循環(huán)鏈表實(shí)例詳解

    python雙向循環(huán)鏈表實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了python雙向循環(huán)鏈表實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Python實(shí)現(xiàn)抖音熱搜定時(shí)爬取功能

    Python實(shí)現(xiàn)抖音熱搜定時(shí)爬取功能

    這篇文章主要為大家介紹了利用Python制作的一個(gè)新摸魚神器,可以實(shí)現(xiàn)抖音熱搜定時(shí)爬取。文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的可以試一試
    2022-03-03
  • 關(guān)于Python dict存中文字符dumps()的問(wèn)題

    關(guān)于Python dict存中文字符dumps()的問(wèn)題

    這篇文章主要介紹了關(guān)于Python dict存中文字符dumps()的問(wèn)題,本文給大家分享問(wèn)題及解決方案,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • Python?Rich增加終端顯示視覺(jué)效果

    Python?Rich增加終端顯示視覺(jué)效果

    Python開(kāi)發(fā)中,命令行界面(CLI)經(jīng)常被用于交互和數(shù)據(jù)展示,雖然命令行界面通常被視為簡(jiǎn)單、枯燥的文本顯示區(qū)域,通過(guò)Python的Rich庫(kù),為命令行界面帶來(lái)更多生機(jī)和視覺(jué)吸引力,本文帶大家探索Rich功能強(qiáng)大的Python庫(kù),增強(qiáng)終端文本渲染,使輸出更具有吸引力和可讀性
    2024-01-01

最新評(píng)論