草庐IT

python - 来自 http 流的非阻塞读取/日志

我有一个连接到HTTP流并记录它使用的文本数据的客户端。我向流媒体服务器发送一个HTTPGET请求...服务器回复并不断发布数据...它会定期发布文本或发送ping(文本)消息...并且永远不会关闭连接。我需要以非阻塞方式读取和记录它消耗的数据。我正在做这样的事情:importurllib2req=urllib2.urlopen(url)fordatinreq:withopen('out.txt','a')asf:f.write(dat)我的问题是:当流是连续的时,这会阻塞吗?每个block中读取了多少数据,是否可以指定/调整?这是读取/记录http流的最佳方式吗?

python - 处理文件的简单脚本的偏执狂、过多的日志记录和异常处理。这是正常的吗?

我发现自己将python用于许多文件管理脚本,如下所示。在网上寻找示例时,我很惊讶示例中的日志记录和异常处理功能如此之少。每次我写一个新脚本时,我的意图都不是像下面那样结束,但如果它处理文件,那么无论我的偏执狂接管什么,最终结果都不像我在网上看到的例子。由于我是新手,我想知道这是否正常。如果不是,那么您如何处理未知数和删除有值(value)信息的恐惧?defflatten_dir(dirname):'''Flattensagivenrootdirectorybymovingallfilesfromitssub-directoriesandnestedsub-directoriesint

python + Nose : make assertions about logged text?

是否有一些简单的方法可以使用nose捕获记录的消息并对其进行断言?例如,我希望能够执行如下操作:cook_eggs()assert_logged("eggsareready!") 最佳答案 您可以创建一个自定义处理程序,它可以检查通过日志记录发送的消息。BufferingHandler非常适合这份工作。您可能还想在测试中将处理程序附加到您在代码中使用的任何记录器,例如logging.getLogger('foo').addHandler(...)。您最终可以在测试用例的setUp和tearDown方法中附加处理程序。importlo

具有格式化程序的 Python 日志记录模块导致 AttributeError

我正在编写一个终端应用程序,在传入-v选项后,毫不奇怪,它会变得冗长。我想在终端中提供输出,以便于测试(无论如何,当以cron运行时它会被重定向到日志文件)。但是,pythonlogging模块不允许我在使用格式化程序时写出相应级别的消息。(Formatter直接从PythonLoggingCookbok复制而来)此行为不仅限于Python3。Python2.7在给定条件下引发相同的异常。一个.pyfromsysimportstdoutimportloggingif__name__=='__main__':level=20log=logging.getLogger()formatter

python - 将记录器消息存储在字符串中

我想将所有中间日志消息(警告、信息、错误)存储到Python中的一个字符串中,并在程序结束时将这些日志消息报告到控制台。我尝试按照中概述的步骤进行操作http://opensourcehacker.com/2011/02/23/temporarily-capturing-python-logging-output-to-a-string-buffer/但没有成功。有人能告诉我一个简洁明了的方法吗?这是我目前尝试过的:log=logging.getLogger('basic_logger')log.setLevel(logging.DEBUG)report=""memory_handle

python WatchedFileHandler 旋转后仍在写入旧文件

我一直在使用WatchedFileHandler作为我的python日志记录文件处理程序,以便我可以使用logrotate(在ubuntu14.04上)轮换我的日志,你知道这就是文档所说的。我的logrotate配置文件看起来像/path_to_logs/*.log{dailyrotate365size10Mcompressdelaycompressmissingoknotifemptysurootroot}一切似乎都运行良好。我正在使用logstash将我的日志发送到我的elasticsearch集群,一切都很好。我为我的调试日志添加了第二个日志文件,该文件会轮换但不会被logsta

python - 屏蔽掉 python 日志中的敏感信息

考虑以下代码try:r=requests.get('https://sensitive:passw0rd@what.ever/')r.raise_for_status()exceptrequests.HTTPError:logging.exception("Failedtowhat.ever")这里,如果端点返回不成功的http状态码,将记录以下内容Traceback(mostrecentcalllast):File"a.py",line5,inr.raise_for_status()File"venv/lib/python3.5/site-packages/requests/mode

python - 允许从 Python 模块自定义日志记录的准则是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion我目前正在编写几个执行一些I/O的Python模块。这些模块可以由其他开发人员直接使用,也可以通过我编写的简单脚本调用,主要用于测试目的。我使用了日志记录模块并设置了一个StreamHandler来在标准错误输出上显示日志,并且效果很好。但是我不确定如何使这些日志可自定义。显然,当开发人员使用我的类时,我不想强​​制将这些日志写入标准输出。我想给出一个选择,最好是让他添加自己的处理程序,或

python - 运行节拍时看不到我的 celery 日志

我正在通过supervisord启动celery,请参阅下面的条目。[program:celery]user=foobarautostart=trueautorestart=truedirectory=/opt/src/slicephone/cloudcommand=/opt/virtenvs/django_slice/bin/celerybeat--app=cloud-lDEBUG-s/home/foobar/run/celerybeat-schedule--pidfile=/home/foobar/run/celerybeat.pidpriority=100stdout_logfi

python - Django - 记录唯一 ID

我正在为每个传入请求分配一个唯一ID,并希望在完成日志记录时将其自动包含在日志中(而不是在所有地方明确包含它)。我正在使用中间件生成此唯一ID并将其存储在本地线程中。我想修改Django的日志格式化程序以直接包含这个唯一ID:LOGGING={...'formatters':{'full':{'format':'%(asctime)s%(levelname)s%(name)s-%(message)s',}}...}如何在不在每个日志语句中显式添加的情况下将唯一ID组件添加到格式化程序? 最佳答案 使用过滤器:该技术在thispost