Flask 引用logging模組把日誌寫入檔案

2021-10-12 02:49:47 字數 1792 閱讀 6240

程式啟動日誌需要儲存到檔案中方便定位問題,flask的日誌記錄需要用到python標準庫logging的支援。

**示例:

# -*- coding: utf-8 -*-

from flask import flask

import logging

def root():

return 'hello'

if __name__ == '__main__':

handler = logging.filehandler('flask.log', encoding='utf-8')

handler.setlevel(logging.debug) # 設定日誌記錄最低級別為debug,低於debug級別的日誌記錄會被忽略,不設定setlevel()則預設為notset級別。

logging_format = logging.formatter(

'%(asctime)s - %(levelname)s - %(filename)s - %(funcname)s - %(lineno)s - %(message)s')

handler.setformatter(logging_format)

日誌檔案:flask.log

2019-11-08 23:18:51,769 - info - manager.py - root - 10 - info log

2019-11-08 23:18:51,770 - warning - manager.py - root - 11 - warning log

示例如下,產生log1.log和log2.log兩個日誌檔案。

同理,可以靈活地將不同模組中的日誌加以區分,輸出到不同檔案中。

from __future__ import absolute_import

import logging

def setup_logger(logger_name, log_file, level=logging.info):

l = logging.getlogger(logger_name)

formatter = logging.formatter('%(asctime)s : %(message)s')

filehandler = logging.filehandler(log_file, mode='w')

filehandler.setformatter(formatter)

streamhandler = logging.streamhandler()

streamhandler.setformatter(formatter)

l.setlevel(level)

l.addhandler(filehandler)

l.addhandler(streamhandler)

def main():

setup_logger('log1', r'log1.log')

setup_logger('log2', r'log2.log')

log1 = logging.getlogger('log1')

log2 = logging.getlogger('log2')

log1.info('info for log 1!')

log2.info('info for log 2!')

log1.error('oh, no! something went wrong!')

if '__main__' == __name__:

main()

遞迴練習 shutil模組 logging模組

os模組 檢視乙個資料夾下的所有檔案,這個資料夾下面還有資料夾,不能用walk import os defshow file path name lst os.listdir path for name in name lst abs path os.path.join path,name if o...

flask專案中使用logging記錄服務日誌

記錄日誌,在任何專案中,都是很重要的。在flask專案中,即有flask提供的logger可以用來記錄log,也可以通過直接使用python的logging模組自定義logger來記錄。其中,日誌資訊包含了幾個等級,如下,本次測試專案中使用了兩個等級的日誌資訊 級別說明 debug 除錯模式,列印最...

Flask 分開Models解決迴圈引用

在之前我們測試中,所有語句都在同乙個檔案中,但隨著專案越來越大,管理起來有所不便,所以將models分離.基本的檔案結構如下 from flask import flask from flask sqlalchemy import sqlalchemy from models import arti...