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

Flask實(shí)現(xiàn)定制日志并輸出到文件

 更新時(shí)間:2023年07月25日 11:28:28   作者:Jacky-008  
這篇文章主要為大家學(xué)習(xí)介紹了Flask如何實(shí)現(xiàn)定制日志并輸出到文件,文中的示例代碼簡介易懂,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧

定制日志器

flask缺省日志器配置

flask自帶的日志系統(tǒng),缺省配置dictConfig(),但必須在Flask()應(yīng)用之前使用

# flask缺省配置
from logging.config import dictConfig
dictConfig({
    'version': 1,
    'formatters': {'default': {
        'format': '[%(asctime)s] %(levelname)s in %(module)s: %(message)s',
    }},
    'handlers': {'wsgi': {
        'class': 'logging.StreamHandler',
        'stream': 'ext://flask.logging.wsgi_errors_stream',
        'formatter': 'default'
    }},
    'root': {
        'level': 'INFO',
        'handlers': ['wsgi']
    }
})
app = Flask(__name__)

自定義日志器

# 配置
def logger_setting(base_dir=None):
	# base_dir是日志文件存放的根目錄,這里為項(xiàng)目目錄
    if not base_dir:
        base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))
    format_dic, handler_dic, logger_dic = dict(), dict(), dict()
    # 定義日志格式
    format_dic['default'] = {'format': '[%(asctime)s] %(levelname)s in %(module)s: %(message)s'}
    format_dic['simple'] = {'format': '{asctime}- {levelname} {message}'}
    format_dic['standard'] = {'format': '%(asctime)s [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'}
    # 定義日志處理器
    handler_dic['wsgi'] = {'class': 'logging.StreamHandler', # 流輸出
                           'stream': 'ext://flask.logging.wsgi_errors_stream',
                           'formatter': 'default'}
    handler_dic['console'] = {'level': 'INFO',
                              #'class': 'logging.StreamHandler',
                              'class': 'logging.FileHandler', # 輸出到文件
                              'filename': os.path.join(base_dir, 'logs','console.log',
                              'formatter': 'simple'}
    handler_dic['error'] = {'level': 'ERROR',
                            'class': 'logging.handlers.RotatingFileHandler',
                            'filename': os.path.join(base_dir, 'logs', 'error.log'),  # 日志文件全路徑 = base_dir/logs/error.log
                            'maxBytes': 1024 * 1024 * 5,
                            'formatter': 'standard'}
    handler_dic['master'] = {'level': 'ERROR',
                             'class': 'logging.handlers.RotatingFileHandler',
                             'filename': os.path.join(base_dir, 'logs', 'master.log'),
                             'maxBytes': 1024 * 1024 * 5,
                             'formatter': 'standard'}
    # 定義日志器
    logger_dic['master'] = {'handlers': ['master'],
                            'level': 'INFO',
                            'propagate': True}
    config = {
        'version': 1,
        'formatters': format_dic,
        'handlers': handler_dic,
        # 'root': {'level': 'INFO', 'handlers': ['wsgi']},  #這個(gè)可以不用
        'loggers': logger_dic
    }
    return config

# flask使用自定義日志器配置, 這里使用是重新定義缺省日志器配置
dictConfig(logger_setting())
app = Flask(__name__, template_folder='templates', static_folder='static')
logger = logging.getLogger('master')
@app.get('/')
def login():
	try:
        print('測試日志器')
        raise ValueError('djjsdwewoeoopw')
    except Exception as e:
        logger.error(e)
        traceback.print_exc()
        abort(401)

if __name__ == '__main__':
   app.run()

同時(shí)在項(xiàng)目目錄下創(chuàng)建logs目錄如下圖

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

相關(guān)文章

  • python虛擬環(huán)境virtualenv的安裝與使用

    python虛擬環(huán)境virtualenv的安裝與使用

    virtualenv用于創(chuàng)建獨(dú)立的Python環(huán)境,多個(gè)Python相互獨(dú)立,互不影響,它能夠:1. 在沒有權(quán)限的情況下安裝新套件 2. 不同應(yīng)用可以使用不同的套件版本 3. 套件升級不影響其他應(yīng)用
    2017-09-09
  • PyTorch中的padding(邊緣填充)操作方式

    PyTorch中的padding(邊緣填充)操作方式

    今天小編就為大家分享一篇PyTorch中的padding(邊緣填充)操作方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python實(shí)現(xiàn)豆瓣圖片下載的方法

    Python實(shí)現(xiàn)豆瓣圖片下載的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)豆瓣圖片下載的方法,涉及Python針對網(wǎng)頁操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python編程中Python與GIL互斥鎖關(guān)系作用分析

    Python編程中Python與GIL互斥鎖關(guān)系作用分析

    GIL互斥鎖用來保護(hù)Python世界里的對象,防止同一時(shí)刻多個(gè)線程執(zhí)行Python字節(jié)碼,確保線程安全,但也導(dǎo)致Python線程無法利用多核CPU優(yōu)勢,本文來探討Python將來是否有可能去除GIL
    2021-09-09
  • Python 在字符串中加入變量的實(shí)例講解

    Python 在字符串中加入變量的實(shí)例講解

    下面小編就為大家分享一篇Python 在字符串中加入變量的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實(shí)例

    Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實(shí)例

    這篇文章主要介紹了Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python實(shí)現(xiàn)為PDF大文件批量去除水印

    Python實(shí)現(xiàn)為PDF大文件批量去除水印

    在閱讀過程中如果遇到一些帶有水印的資料是比較煩心的,而市面上去水印的功能有多要收費(fèi)且很不方便,那么,如何通過Python來對這類圖片水印進(jìn)行去除呢,本文就來和大家分享一下實(shí)現(xiàn)方法吧
    2023-05-05
  • Python?sentence-transformers庫示例詳解

    Python?sentence-transformers庫示例詳解

    Sentence?Transformer是一個(gè)Python框架,用于句子、文本和圖像嵌入Embedding,它基于Transformer架構(gòu)的預(yù)訓(xùn)練模型,并在大量語義相似性數(shù)據(jù)上進(jìn)行了微調(diào),能夠捕捉句子之間的深層語義關(guān)系,本文給大家介紹Python?sentence-transformers庫的相關(guān)知識,感興趣的朋友一起看看吧
    2025-08-08
  • 從基礎(chǔ)操作到高級技巧詳解Python源代碼導(dǎo)出全攻略

    從基礎(chǔ)操作到高級技巧詳解Python源代碼導(dǎo)出全攻略

    在Python開發(fā)中,導(dǎo)出源代碼是一個(gè)常見需求,本文將通過真實(shí)場景案例,用通俗易懂的方式講解Python源代碼導(dǎo)出的完整方案,希望對大家有所幫助
    2026-02-02
  • 關(guān)于django 1.10 CSRF驗(yàn)證失敗的解決方法

    關(guān)于django 1.10 CSRF驗(yàn)證失敗的解決方法

    今天小編就為大家分享一篇關(guān)于django 1.10 CSRF驗(yàn)證失敗的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評論

祥云县| 延寿县| 鹤壁市| 于田县| 桃园县| 平泉县| 井陉县| 涞水县| 扬州市| 德惠市| 曲周县| 攀枝花市| 乌海市| 固安县| 时尚| 冀州市| 黄浦区| 博野县| 四会市| 原阳县| 扶风县| 嘉定区| 成都市| 鸡西市| 长宁县| 武平县| 泸州市| 雷波县| 绵竹市| 唐海县| 滦南县| 防城港市| 康乐县| 自治县| 连城县| 百色市| 三台县| 曲阜市| 麦盖提县| 乌兰察布市| 宜城市|