亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中,我可以將日志寫入控制臺,但它不會寫入文件

在python中,我可以將日志寫入控制臺,但它不會寫入文件

HUX布斯 2022-10-05 09:33:59
import logging #Create and configure logger logging.basicConfig(filename="newfile.txt", format='%(asctime)s %(message)s',filemode='w') logging.debug("Harmless debug Message") logging.info("Just an information") logging.warning("Its a Warning") logging.error("Did you try to divide by zero") logging.critical("Internet is down") 在控制臺中打印所有這些信息。它從未寫入文件。真的很感謝那些幫助我解決這個問題的人。從早上開始在互聯網上搜索嘗試了所有的可能性,但日志仍然沒有寫入文件
查看完整描述

2 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

使用所需的流和文件處理程序創建一個新的記錄器:


import logger, sys

logger = logging.Logger('AmazeballsLogger')

#Stream/console output

logger.handler = logging.StreamHandler(sys.stdout)

logger.handler.setLevel(logging.WARNING)

formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")

logger.handler.setFormatter(formatter)

logger.addHandler(self.handler)

#File output

fh = logging.FileHandler("test.log")

fh.setLevel(logging.DEBUG)

fh.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s"))

logger.addHandler(fh)

你已經準備好兜風了:


print(logger.handlers)


logger.critical("critical")

logger.error("error")

logger.warning("warning")

logger.info("info")

logger.debug("debug")

以下控制臺輸出僅顯示“警告”及更高版本:


[<StreamHandler stdout (WARNING)>, <FileHandler C:\Users\...\test.log (DEBUG)>]

2020-04-13 17:52:57,729 - CRITICAL - critical

2020-04-13 17:52:57,731 - ERROR - error

2020-04-13 17:52:57,734 - WARNING - warning

測試時.log包含所有級別:


2020-04-13 17:52:57,729 - AmazeballsLogger - CRITICAL - critical

2020-04-13 17:52:57,731 - AmazeballsLogger - ERROR - error

2020-04-13 17:52:57,734 - AmazeballsLogger - WARNING - warning

2020-04-13 17:52:57,736 - AmazeballsLogger - INFO - info

2020-04-13 17:52:57,736 - AmazeballsLogger - DEBUG - debug

關鍵是要了解日志記錄處理程序的工作原理,并檢查它們是否使用正確的級別(如上面的代碼單元所示,只是打印 logger.handlers)。此外,覆蓋基本配置是一種不好的做法,當您在同一 Python 環境中運行多個記錄器時,可能會導致問題。我推薦這個視頻,它闡明了python日志記錄中的流/文件處理程序。


查看完整回答
反對 回復 2022-10-05
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

我從日志記錄文檔中得到了這個例子


import logging


logging.basicConfig(level=logging.DEBUG,

                    format='%(asctime)s %(levelname)s %(message)s',

                    filename='myapp.log',

                    filemode='w')

logging.debug('A debug message')

logging.info('Some information')

logging.warning('A shot across the bows')

以及我在網絡上看到的例子,他們都在創建文件。因此,請嘗試將文件的擴展名從txt更改為日志.log


查看完整回答
反對 回復 2022-10-05
  • 2 回答
  • 0 關注
  • 272 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號