在python中,我可以将日志写入控制台,但它不会写入文件

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") 

在控制台中打印所有这些信息。它从未写入文件。真的很感谢那些帮助我解决这个问题的人。从早上开始在互联网上搜索尝试了所有的可能性,但日志仍然没有写入文件


HUX布斯
浏览 228回答 2
2回答

慕尼黑5688855

使用所需的流和文件处理程序创建一个新的记录器:import logger, syslogger = logging.Logger('AmazeballsLogger')#Stream/console outputlogger.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 outputfh = 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 - critical2020-04-13 17:52:57,731 - ERROR - error2020-04-13 17:52:57,734 - WARNING - warning测试时.log包含所有级别:2020-04-13 17:52:57,729 - AmazeballsLogger - CRITICAL - critical2020-04-13 17:52:57,731 - AmazeballsLogger - ERROR - error2020-04-13 17:52:57,734 - AmazeballsLogger - WARNING - warning2020-04-13 17:52:57,736 - AmazeballsLogger - INFO - info2020-04-13 17:52:57,736 - AmazeballsLogger - DEBUG - debug关键是要了解日志记录处理程序的工作原理,并检查它们是否使用正确的级别(如上面的代码单元所示,只是打印 logger.handlers)。此外,覆盖基本配置是一种不好的做法,当您在同一 Python 环境中运行多个记录器时,可能会导致问题。我推荐这个视频,它阐明了python日志记录中的流/文件处理程序。

米琪卡哇伊

我从日志记录文档中得到了这个例子import logginglogging.basicConfig(level=logging.DEBUG,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; format='%(asctime)s %(levelname)s %(message)s',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; filename='myapp.log',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; filemode='w')logging.debug('A debug message')logging.info('Some information')logging.warning('A shot across the bows')以及我在网络上看到的例子,他们都在创建文件。因此,请尝试将文件的扩展名从txt更改为日志.log
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python