簡體   English   中英

Python記錄問題?

[英]Python logging issue?

我正在編寫以下代碼,將消息記錄到文件中:

#!/usr/bin/python3

import logging 

## init logger
logger = logging.getLogger(__name__)

## create handler file
handler = logging.FileHandler('mylog3.log')

## set log level
handler.setLevel(logging.INFO)

## add handler to logger
logger.addHandler(handler)

l = [1, 2, 3, 4]
i = 3

logger.info('This is an info message')
logger.warning('This is a warning message')
logger.debug('This is a debug message.  I=%d l=%s', i, l)
logger.error('This is an error message. l =%s', l)
logger.fatal('This is a fatal error message')

我看到的問題是,無論我提供什么設置,它總是在文件中打印警告,錯誤和致命錯誤消息。 永遠不會編寫調試和信息消息。

我確認自己在Windows以及Ubuntu Linux Python 3上都遇到了PyCharm問題。因此,一定是我做錯了什么。 會是什么 我很茫然!

由於行handler.setLevel(logging.INFO) ,因此未顯示調試和信息消息。 這將導致不顯示所有級別為logging.INFO或以下的消息(僅info和debug)。 您可以使用logging.NOTSET替換loggign.INFO來解決此問題。

記錄器和處理程序都有級別。 您已為處理程序設置了級別,但未為記錄程序設置了級別-默認為WARNING 如果執行logger.setLevel(logging.DEBUG) ,則應該同時看到DEBUGINFO消息(如果根本沒有在處理程序上設置級別)或INFO消息,但看不到DEBUG消息(如果設置了處理程序的級別到logging.INFO )。

有關日志記錄中信息流的更多信息,請參見此圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM