草庐IT

python - Python 中的信号处理程序和日志记录

Documentationforloggingmodule说Ifyouareimplementingasynchronoussignalhandlersusingthesignalmodule,youmaynotbeabletouseloggingfromwithinsuchhandlers.Thisisbecauselockimplementationsinthethreadingmodulearenotalwaysre-entrant,andsocannotbeinvokedfromsuchsignalhandlers.这表明不应从信号处理程序直接或间接调用的代码中进行日志记录调用

Python 将日志滚动到变量

我有一个使用多线程并在服务器后台运行的应用程序。为了在不登录服务器的情况下监控应用程序,我决定包括Bottle为了响应一些HTTP端点并报告状态,执行远程关闭等。我还想添加一种查询日志文件的方法。我可以使用FileHandler登录并在请求URL时发送目标文件(例如/log)。但是,我想知道是否有可能实现类似RotatingFileHandler的东西,但不是记录到文件,而是记录到变量(例如BytesIO).这样,我可以将日志限制为最新信息,同时能够将其作为文本而不是作为单独的文件下载返回给浏览器。RotatingFileHandler需要一个文件名,因此不能将BytesIO流传递给它

python - 使 logging.LoggerAdapter 可用于其他模块的优雅方式

我使用LoggerAdapter让我的python日志记录输出LinuxTID,而不是长的唯一ID。但是这样我就不会修改现有的logger而是创建一个新对象:new_logger=logging.LoggerAdapter(logger=logging.getLogger('mylogger'),extra=my_tid_extractor())现在我希望这个LoggerAdapter被某些模块使用。只要我知道一个全局变量被用作记录器,我就可以做这样的事情:somemodule.logger=new_logger但这并不好——它只在少数情况下有效,您需要知道模块使用的记录器变量。您是否

python - 如何记录 ConfigParser 的内容?

如何将Python2.7ConfigParser的内容打印到logging?我能找到的唯一解决方案是写入一个临时文件并读回该文件。我的另一个想法是从日志实用程序中获取一个伪造的“文件句柄”并将其传递给ConfigParser写入方法,但是我不知道如何获得这样的句柄表单日志记录。 最佳答案 由于这是谷歌搜索的最高结果,我希望找到一种解决方案来将ConfigParser实例的值打印到标准输出,这里有一个单行代码可以帮助所有future的读者:print({section:dict(config[section])forsectionin

python - 有没有办法更改未使用 basicConfig 配置的记录器对象的文件模式?

如果我使用logger=logging.getLogger("Name")创建记录器对象,我无法将文件模式从append('a')更改为write('w')。如果我将根记录器与basicConfig一起使用,我可以,但是当我想要的只是从DEBUG级别开始的我自己的消息时,我会记录很多系统调试消息。我希望(1)将我自己的记录器对象的文件模式更改为“w”或(2)向根记录器添加过滤器。甚至可以从根记录器中过滤掉这些调试消息吗?defcreate_log():#createloggerfor"SampleApp"logger=logging.getLogger('automated_testi

Python 日志记录 - 将日期设置为文件名

我正致力于在我的Python项目中实现日志记录,但遇到了一些障碍。我正在尝试设置我的日志记录,以便将处理程序和格式化程序全部组织到一个配置文件中。我现在想做的是设置我的fileHandler,这样它将创建一个看起来像这样的日志文件:YYYY_MM_DD.log显然带有Y代表年,M代表月,D代表日。这是我尝试使用我的配置文件:[loggers]keys=root,MainLogger[handlers]keys=fileHandler,consoleHandler[formatters]keys=logFormatter,consoleFormatter[logger_root]leve

python - 服务器日志记录 - 在数据库或日志文件中?

我一直在服务器上工作,我开始实现日志记录。但是,我不确定是否应该使用数据库进行日志记录,还是只使用纯文本文件。我计划为每个请求记录一些基本信息(什么类型的请求、请求的IP地址、session跟踪)。对于某些请求,将提供扩展信息(有关请求类型的详细信息),如果有任何错误,我也会记录这些错误。一方面,将日志放入数据库意味着我可以对记录的数据运行查询。另一方面,我不确定这是否会给数据库带来不必要的压力。当然,我也可以同时使用数据库和日志文件进行日志记录。人们对正确的日志记录有何看法?(如果有所不同,我在带有MySQL数据库的Apache服务器上使用mod_python。所以我要么使用logg

python 日志记录根本不起作用

我正在尝试在我的小型Python项目中使用日志记录。按照教程,我将下面的代码添加到我的代码中,但是消息没有按预期记录到文件中。importlogginglogging.basicConfig(filename="a.log",filemode="w",level=logging.DEBUG)logging.error("Loginitializationfailed.")密码中没有创建日志文件。(我已经使用下面的代码打印出密码,我确定我检查了正确的目录。)所以我手动创建了文件并运行了代码,但消息仍然没有被记录。print"argv:%r"%(sys.argv,)print"dirnam

python - 将 Flask 日志从 INFO 更改为 DEBUG

默认情况下,Flask会直接使用INFO标记记录GET和POST请求。在实现自定义记录器时,这些记录器会发布到同一个记录器并使我的INFO层困惑。有没有办法将它们降级到DEBUG之类的另一层?这是我使用的记录器:#createloggerFORMAT='%(asctime)s-%(module)s-%(levelname)s-Thread_name:%(threadName)s-%(message)s'logging.basicConfig(format=FORMAT,datefmt='%m/%d/%Y%I:%M:%S%p',filename='wizard/logs/example.

Python 日志记录模块多次打印行

我有以下代码:importloggingclassA(object):def__init__(self):self._l=self._get_logger()def_get_logger(self):loglevel=logging.INFOl=logging.getLogger(__name__)l.setLevel(logging.INFO)h=logging.StreamHandler()f=logging.Formatter('%(asctime)s%(levelname)s%(message)s')h.setFormatter(f)l.addHandler(h)l.setLe