python 3 6 logger 日誌格式

2022-08-20 16:54:12 字數 1989 閱讀 1408

今天使用python3.6來例項化logging,但是發現logger = logging.getlogger(__name__)記錄中文時日誌會顯示亂碼;發現python3.6需要設定下logging.handler才可以正常顯示中文,沒仔細研究,先貼上**,後續補充原因

設定這樣格式中文還是會顯示亂碼

logging.basicconfig(level=logging.info,

format='%(asctime)s [%(levelname)s] %(message)s (%(filename)s:l%(lineno)d)',

datefmt='%y-%m-%d %h:%m:%s',

filename='spider.log',

filemode='a')

設定handler然後新增encoding='utf-8'格式,中文顯示正常

import

logging,logging.handler

handler = logging.handlers.rotatingfilehandler('

../logs/kaola.log

',maxbytes=1024*1024,backupcount=5,encoding='

utf-8')

fmt = '

%(asctime)s-%(levelname)s-%(message)s

' #日誌輸出的格式

formatter =logging.formatter(fmt) #設定格式

handler.setformatter(formatter)

logger = logging.getlogger('

kaola

') #設定日誌名稱

logger.addhandler(handler) #新增剛設定的handler

logger.setlevel(logging.info) #設定級別為info以上記錄到日誌

這個handler類似於上面的filehandler,但是它可以管理檔案大小。當檔案達到一定大小之後,它會自動將當前日誌檔案改名,然後建立 乙個新的同名日誌檔案繼續輸出。比如日誌檔案是chat.log。當chat.log達到指定的大小之後,rotatingfilehandler自動把 檔案改名為chat.log.1。不過,如果chat.log.1已經存在,會先把chat.log.1重新命名為chat.log.2。。。最後重新建立 chat.log,繼續輸出日誌資訊。

它的建構函式是:rotatingfilehandler( filename[, mode[, maxbytes[, backupcount]]])其中filename和mode兩個引數和filehandler一樣。maxbytes用於指定日誌檔案的最大檔案大小。如果maxbytes為0,意味著日誌檔案可以無限大,這時上面描述的重新命名過程就不會發生。

backupcount用於指定保留的備份檔案的個數。比如,如果指定為2,當上面描述的重新命名過程發生時,原有的chat.log.2並不會被更名,而是被刪除。

下面這種屬於基本格式,基本專案都會用到這種格式

1

import

logging,logging.config23

4 log_config =,

16},

1718

#處理器集合19'

handlers

': ,27#

輸出到檔案28'

log'

: ,37

},38

#過濾器39'

filters':

43},

4445

#日誌格式集合46'

formatters':

52}53}

5455

logging.config.dictconfig(log_config)

56 logger = logging.getlogger("

default

")

python常用模組 logger模組

python的logging模組提供了通用的日誌系統,熟練使用logging模組可以方便開發者開發第三方模組或者是自己的python應用。python使用logging模組記錄日誌涉及四個主要的類 logger 提供了應用程式可以直接使用的介面 handler 將 logger建立的 日誌記錄傳送到...

Python中利用logger進行日誌格式輸出

本文主要是針對python程式設計師小白在寫專案 時的焦慮 什麼時候列印日誌?日誌列印格式是什麼樣的?列印日誌怎麼存?等等這些問題都是剛開始需要考慮的。其中logs資料夾是專門儲存日誌檔案的,對日誌檔案的輸出要求是 1.logs資料夾下包括三種型別 log.log error.log 歷史日誌資料夾...

python使用logger實現日誌回滾和異常捕捉

使用logger模組設定日誌輸出到檔案中,使用timedrotatingfilehandler import time import logging import logging.handlers defloghandler name 初始化logging logging.basicconfig m...