在不修改boto文件的情况下禁用boto日志记录
我正在使用Boto库与AWS交谈.我想禁用伐木. (或重定向到/dev/null或其他文件).我找不到明显的方法.我尝试了这个,但这似乎无济于事: import boto boto.set_file_logger('boto', 'logs/boto.log') 这说明, 解决方案 您可以尝试 import logging logging.getLogger('boto').setLevel(logging.CRITICAL) 会抑制所有(关键)错误的所有( ) boto使用记录配置文件(例如/etc/boto.cfg,~/.boto),请查看是否可以按照您的需求进行配置. set_file_logger调用简单地将用户定义的文件添加到记录设置,因此您无法使用它来关闭登录. 其他解决方案 我将boto3答案从评论(即charneykaye and gene_wood)移动到一个适当的答案: import logging logger = l
14 2024-04-03
编程技术问答社区
迁移Azure应用程序洞察登录从OpenCensus到OpenTelemetary的Python项目登录
我正试图从OpenCensus转到Opentelemetry,因为前一个项目一直是明年晚些时候. 当前代码创建日志配置: log_config = { "version": 1, "disable_existing_loggers": True, "formatters": { "default": { "()": "uvicorn.logging.DefaultFormatter", "fmt": "%(levelprefix)s [%(thread)d] [%(asctime)s.%(msecs)03d] %(message)s", "datefmt": "%Y-%m-%d %H:%M:%S", }, }, "handlers": { "default": { "level": "
使用AWS Lambda的python日志记录
正如AWS文档所建议的: import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def my_logging_handler(event, context): logger.info('got event{}'.format(event)) logger.error('something went wrong') 现在我做了: import logging logging.basicConfig(level = logging.INFO) logging.info("Hello World!") 代码的第一个片段在Cloud Watch控制台中打印,但第二个编码 我没有看到任何区别,因为这两个片段使用了根记录器. 解决方案 The reason that logging does not seem to work is because the A
4 2024-03-22
编程技术问答社区
我如何从我的Python Spark脚本中记录
我有一个使用spark-submit运行的Python Spark程序.我想将记录语句放在其中. logging.info("This is an informative message.") logging.debug("This is a debug message.") 我想使用SPARK使用的相同记录器,以便以相同格式出现日志消息,并且级别由相同的配置文件控制.我该怎么做? 我尝试将logging语句放在代码中,并从logging.getLogger()开始.在这两种情况下,我都会看到Spark的日志消息,但没有我的.我一直在看 Python记录文档那里. 不确定这是否是针对Spark提交的脚本的特定内容,或者只是我不了解日志记录的工作方式. 解决方案 您可以从SparkContext对象获取记录器: log4jLogger = sc._jvm.org.apache.log4j LOGGER = log4jLogger.LogManager.g
12 2024-02-29
编程技术问答社区
Python on the AWS Beanstalk. 如何快照自定义日志?
我正在开发适用于AWS Beanstalk环境的Python应用程序.对于错误处理和调试建议,我将日志写入Directory/var/logs/的自定义LOF文件. 为了获得来自Elastic Beanstalk管理控制台的能力快照日志,该怎么办? 解决方案 如果您需要从Beanstalk Management Console中查看日志文件,则应将日志文件写入"/opt/python/log/log/"文件夹. Elastic Beanstalk脚本使用此文件夹进行日志尾声. 其他解决方案 在VADIM911上扩展(和我自己的评论),我使用import logging logging.basicConfig(filename='/opt/python/log/my.log', level=logging.DEBUG) 这是.ebextensions配置文件代码: files: "/opt/python/log/my.log" : mode: "
18 2024-01-24
编程技术问答社区
Aiohttp日志:如何区分不同请求的日志信息?
想象我有基于AIOHTTP的Web应用程序: from aiohttp import web import asyncio import logging logger = logging.getLogger(__name__) async def hello(request): logger.info('Started processing request') await asyncio.sleep(1) logger.info('Doing something') await asyncio.sleep(1) return web.Response(text="Hello, world!\n") logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(name)-14s %(levelname)s: %(message)s') app = web
24 2024-01-20
编程技术问答社区
在Windows中使用多进程的Python日志系统
我有一个相当大的Python项目,目前在Linux上运行,但我试图扩展到Windows.我将代码减少到一个完整的示例中,该示例可以说明我的问题:我有两个班级,父母和孩子.父母首先是初始化的,创建记录仪,并产生孩子进行工作: import logging import logging.config import multiprocessing class Parent( object ): def __init__(self, logconfig): logging.config.dictConfig(logconfig) self.logger = logging.getLogger(__name__) def spawnChild(self): self.logger.info('One') c = Child(self.logger) c.start() class C
26 2023-12-05
编程技术问答社区
Python中的logging.warning和logging.warning有什么区别?
.html 同时使用warn和warning. 解决方案 logging.warn自Python 3.3以来已被弃用,您应该使用logging.warning. 在Python 3.3,logging.warn和logging.warning之前是相同的功能,但未记录logging.warn,如在Python Bug Tracker 那是故意的.原始代码(在合并到Python之前)具有WARN(),该代码被保留为向后兼容.文档是指警告(),因为那是每个人都应该使用的.方法名称映射到适当的记录级别名称的较低情况. logging.warn()保留以使其向后兼容,但添加了折旧警告. logging.warning()是每个人都应该使用的. 其他解决方案 在Python 3.3之前,它们是相同的,但是warn被弃用: >>> import logging >>> logging.warn is logging.warning True
24 2023-11-27
编程技术问答社区
logging.info不显示在控制台,但警告和错误显示在控制台。
当我使用logging.info登录事件时,它不会出现在Python终端中. import logging logging.info('I am info') # no output 相比之下,登录logging.warn的事件确实出现在终端中. import logging logging.warn('I am warning') # outputs "I am warning" 我可以将logging.info打印到控制台上吗?我想避免在每个python文件中进行更改. 解决方案 根记录器始终默认为警告级别.尝试致电 logging.getLogger().setLevel(logging.INFO) 你应该没事的. 其他解决方案 就像@ztyx一样,默认的记录器级别正在警告.您必须将其设置为较低的级别 您可以使用 logging.basicconfig 和设置 logger级别: logging.basicConfig(
18 2023-11-27
编程技术问答社区
warnings.warning() vs. logging.warning()
warnings.warn() warnings.warn() =" https://docs.python.org/library/logging.html#logging.logger.warning" rel =" noreferrer"> logging.warn() 就他们的工作以及如何使用它们吗? 解决方案 我同意其他答案 - logging用于记录,warning是用于警告 - 但我想添加更多细节. 这是一种教程风格的方法,可以通过使用logging模块的步骤进行操作. https://docs.python.org/3/howto/howto/logging/logging.html 它直接回答您的问题: 图书馆代码中的 warnings.warn()如果避免了问题,并且 应修改客户端应用程序以消除警告 loggging.warning()如果没有客户应用程序可以执行 关于情况,但仍应注意该事件 其他解决方案 warnings.w
14 2023-11-27
编程技术问答社区
如何在Python日志上设置GMT/UTC的时间戳?
是否可能以及如何将记录时区设置为GMT? (即格式中的%(asctime)s参数) 解决方案 logging.Formatter.converter = time.gmtime (在 logging.Formatter.formatTime logging.Formatter.formatTime logging.Formatter.formatTime ) 其他解决方案 只是设置logging.Formatter.converter = time.gmtime对我来说是无效的2.5. 所以我创建了一个带有IT设置的子类,然后将其代替loggging.formatter: class UTCFormatter(logging.Formatter): converter = time.gmtime 其他解决方案 来自Python 3文档: import time class UTCFormatter(logging.Formatt
16 2023-11-11
编程技术问答社区
PyDev unittesting。如何在 "捕获的输出 "中捕获记录到logging.Logger的文本
我正在使用PYDEV进行Python应用程序的开发和单位测试. 至于单位测试,一切都很好,除了没有任何内容记录到记录框架的事实之外.该记录器未通过pydev的"捕获输出"捕获. 我已经将所有已登录到标准输出的所有内容都这样: import sys logger = logging.getLogger() logger.level = logging.DEBUG logger.addHandler(logging.StreamHandler(sys.stdout)) 尽管如此,"捕获的输出"并未显示登录到伐木者的内容. 这是一个示例UnitSt-Script: test.py import sys import unittest import logging logger = logging.getLogger() logger.level = logging.DEBUG logger.addHandler(logging.StreamHandler(sys.
16 2023-11-07
编程技术问答社区
Python日志记录到StringIO处理程序
我有一个python测试,我想测试日志记录是否正常工作.例如,我有一个创建用户的函数,最后登录写入记录响应. logger = logging.getLogger('mylogger') logger.setLevel(logging.DEBUG) handler = logging.handlers.WatchedFileHandler('mylogfile.log') formatter = logging.Formatter('%(asctime)s: %(message)s', '%d/%b/%Y:%H:%M:%S %z') handler.setFormatter(formatter) logger.addHandler(handler) logger.info('Some log text') 在我的测试案例中,我想将日志输出发送到Stringio. class MyTest(unittest.Tes
30 2023-11-07
编程技术问答社区
如何在Python Django中运行单元测试时禁用日志?
我正在使用一个基于单元测试的简单测试跑步者来测试我的Django应用程序. 我的应用程序本身被配置为在设置中使用基本记录器.py使用: logging.basicConfig(level=logging.DEBUG) 在我的应用程序代码中使用: logger = logging.getLogger(__name__) logger.setLevel(getattr(settings, 'LOG_LEVEL', logging.DEBUG)) 但是,当运行Unitests时,我想禁用日志记录,以免使我的测试结果输出混乱.是否有一种简单的方法可以以全局方式关闭登录,以便在我运行测试时,特定的应用程序不会将内容写入控制台? 解决方案 logging.disable(logging.CRITICAL) 将禁用所有低于或等于CRITICAL的级别的日志记录呼叫.可以通过 重新启用记录 logging.disable(logging.NOTSET) 其他
40 2023-11-07
编程技术问答社区
UTF-8 在Python日志中,如何?
我正在尝试使用Python的记录程序包将UTF-8编码的字符串记录到文件.作为玩具示例: import logging def logging_test(): handler = logging.FileHandler("/home/ted/logfile.txt", "w", encoding = "UTF-8") formatter = logging.Formatter("%(message)s") handler.setFormatter(formatter) root_logger = logging.getLogger() root_logger.addHandler(handler) root_logger.setLevel(logging.INFO) # This is an o with a hat on it. byte_str
22 2023-11-06
编程技术问答社区
Twisted: 禁用Twisted-framework类的日志信息
我的基于扭曲的客户端将UDP数据包在循环中发送. 因此,我正在使用类datagramprotocol. 这是来源: #!/usr/bin/python # -*- coding: utf-8 -*- from twisted.application.service import Service from twisted.internet import reactor from twisted.internet.task import LoopingCall from twisted.internet.protocol import DatagramProtocol from twisted.python import log import logging class HeartbeatClient(Service): def __init__(self, host, port, data, beat_period): self.ip = host
36 2023-10-28
编程技术问答社区
如何防止 Python Tornado 将日志记录到 stdout/console?
我需要禁用龙卷风从登录到Stdout.我正在使用Python 3.8,并且在Ubuntu 18.04上运行.我希望仅通过旋转文件记录器来处理我的日志语句.问题是记录的语句已登录到文件中,也可以进行控制: import logging from logging.handlers import RotatingFileHandler logger = logging.getLogger("ex_logger") nh = logging.NullHandler() rfh = RotatingFileHandler(filename="./logs/process.log", mode='a', maxBytes=50000000, backupCount=25, encoding=None, delay=False) rfh.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s
18 2023-10-24
编程技术问答社区
Python日志:在时间格式中使用毫秒
默认情况下logging.Formatter('%(asctime)s')使用以下格式打印: 2011-06-09 10:54:40,638 其中638是毫秒.我需要将逗号更改为一个点: 2011-06-09 10:54:40.638 格式化我可以使用的时间: logging.Formatter(fmt='%(asctime)s',datestr=date_format_str) 然而,文档没有指定如何格式化MilliseConds.我发现问题谈论微秒的哪个,但是a)我希望毫秒和b)由于%f>: ,以下内容在Python 2.6上不起作用. logging.Formatter(fmt='%(asctime)s',datefmt='%Y-%m-%d,%H:%M:%S.%f') 解决方案 这也应该有效: logging.Formatter( fmt='%(asctime)s.%(msecs)03d', datefmt='%Y-%m
8 2023-10-21
编程技术问答社区
Tensorflow的日志信息没有出现
我使用tensorflow 1.2.0 pip install. 当我运行包括 的样品时 import logging tf.logging.set_verbosity(tf.logging.INFO) 表格的记录消息 logging.info('TEST') 即使使用标志--tostderr. 也不会出现在终端输出中 根据这个答案我也尝试了 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '0' 但问题仍然存在.有什么想法吗? 解决方案 TF记录基础: 因此,在TensorFlow记录周围存在很多混乱,而且确实没有充分记录.我在搜索中几次降落在这里,所以这似乎是发布答案的好地方. 在对Ubuntu和Windows进行了一些研究和实验之后(比我计划的更多),这就是我得到的: 有两个标志,类似命名,但语义有些不同: TF_CPP_MIN_LOG_LEVEL - 具有3或4个基本级别 - 低数字=
30 2023-10-16
编程技术问答社区