我正在编写一个服务器应用程序,该应用程序应该能够在控制台和日志文件上以不同级别登录。
问题是,如果设置了logging.basicConfig(),它将登录到控制台,但是必须在主线程中进行设置。
也可以使用logging.basicConfig(filename =’logger.log’)进行设置以写入文件。
设置用于控制台日志记录(logging.StreamHandler())或文件日志记录(logging.FileHandler())的句柄将补充logging.baseconfig()选项集。
问题是设置不是独立的。我的意思是,logging.baseConfig()的日志级别必须包括处理程序级别,否则它将不会被记录。
因此,如果我将baseConfig设置为登录到文件,将StreamHandler设置为登录到控制台,则文件日志级别必须低于控制台级别。(此外,basicConfig选项还记录所有其他日志。)
我尝试创建两个句柄,一个用于控制台,一个用于日志文件,它们可以工作,但是basicConfig()指定的任何日志类型仍将显示重复消息。
有没有办法禁用basicConfig()的输出?还是通过其他方式实现这些选项?
谢谢。
您没有在问题中说出您想要在控制台和文件记录上指定什么级别。但是,您不需要调用basicConfig()
,因为它只是一个便捷功能。您可以执行例如(输入的代码未经测试):
import logging
logger = logging.getLogger(__name__)
configured = False
def configure_logging():
global configured
if not configured:
logger.setLevel(logging.DEBUG) # or whatever
console = logging.StreamHandler()
file = logging.FileHandler('/path/to/file')
#set a level on the handlers if you want;
#if you do, they will only output events that are >= that level
logger.addHandler(console)
logger.addHandler(file)
configured = True
首先将事件传递给记录器,如果要处理事件(由于比较记录器和事件的级别),则将事件传递给记录器的每个处理程序以及所有其祖先的处理程序。如果在处理程序上设置了级别,则该处理程序可能会丢弃该事件,否则它将输出该事件。
我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?
我正在使用python日志记录我的程序。所有日志当前都打印在stdout上,但我希望使用POST REST调用将它们发送到远程日志服务器。当前,我的程序发出了多个日志记录的POST请求。有没有更优化的方式发送日志,我可以捆绑多个日志在一个POST请求?
问题内容: 我正在考虑将Redis用于Web应用程序日志记录目的。我用谷歌搜索,有人将日志转储到Redis队列/列表中,然后将计划的工作人员转储到磁盘中。 http://nosql.mypopescu.com/post/8652869828/another-redis-use-case- centralized-logging 我希望寻求理解,为什么不直接使用Redis持久化到磁盘?如果我分配了一
logging 模块自 2.3 版以来一直是 Python 标准库的一部分。在 PEP 282 中有对它的简洁描述。除了 基础日志教程 之外,这些文档是非常难以阅读的。 日志记录一般有两个目的: 诊断日志 记录与应用程序操作相关的日志。例如,当用户遇到程序报错时, 可通过搜索诊断日志以获得上下文信息。 审计日志 为商业分析而记录的日志。从审计日志中,可提取用户的交易信息, 并结合其他用户资料构成用
我试图从log4j1更改为log4j2。我所做的: 已删除旧配置文件log4j。xml 创建了新的配置文件log4j2。xml 创建了jboss部署结构。xml 编辑的pom 环境:野蝇10 1 EAR 4 WAR文件中没有使用web.xml。以前的log4j配置日志在EAR中(仅) Log4j2配置文件 Jboss部署结构 新的maven依赖关系 我之前说过我在SLF4j中使用log4j1。这些
在重新启动Spring Boot Admin服务器后,是否有任何方法可以在Spring Boot Admin日志页面中保存有关应用程序状态更改的历史记录?所有已注册应用程序的所有状态更改都有历史记录,但如果我重新启动管理服务器,历史记录将消失,并开始记录自启动以来的更改。有没有办法将历史记录永久保存在此页面中?即使spring boot管理服务器重新启动?