Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python日志消息重定向和筛选_Python_Logging_Python 2.7 - Fatal编程技术网

Python日志消息重定向和筛选

Python日志消息重定向和筛选,python,logging,python-2.7,Python,Logging,Python 2.7,我希望扩展一个单用户控制台应用程序,以允许访问多个用户。主要目的是让用户查看系统状态并发出单个命令 所有日志记录都由python执行,这非常有效,因为单个用户可以在控制台中指定他感兴趣的日志记录级别 然而,当涉及到允许多个用户时,我需要将日志消息的简单输出抽象到控制台。那么,我的问题是,将日志模块的输出重定向到另一个位置的最佳方式是什么?另外,我如何区分各个消息的日志级别,以显示不同用户的不同详细程度?我想我可以只解析out和DEBUG/INFO前缀,但肯定有更好的方法“标记”单个消息 更多详情

我希望扩展一个单用户控制台应用程序,以允许访问多个用户。主要目的是让用户查看系统状态并发出单个命令

所有日志记录都由python执行,这非常有效,因为单个用户可以在控制台中指定他感兴趣的日志记录级别

然而,当涉及到允许多个用户时,我需要将日志消息的简单输出抽象到控制台。那么,我的问题是,将日志模块的输出重定向到另一个位置的最佳方式是什么?另外,我如何区分各个消息的日志级别,以显示不同用户的不同详细程度?我想我可以只解析out和DEBUG/INFO前缀,但肯定有更好的方法“标记”单个消息

更多详情:

  • 此时,用户在本地控制台上查看消息
  • 将来,将有更多的客户端通过基于web的终端仿真连接到AJAX更新(因此需要更多的控制)

    • 这听起来像是一个架构问题

      如果我正确理解你的要求,你想要的是这样的东西

      • 您有一个基于Python的系统,其中有一个或多个标准Python记录器写入文本文件
      • 您需要允许多个用户实时访问这些日志数据,使用各种过滤技术来控制他们访问的内容
      • 根据他们从分析这些信息中发现的情况,他们可能需要向系统发出命令以修改其行为
      考虑到这组需求,我建议采用以下方法

      • 创建一个集中的数据库来存储日志记录
      • 使用标准Python记录器和自定义日志处理程序填充数据库,该处理程序直接从记录器与数据库通信
      • 开发一个基于服务器的应用程序,在基于web的客户端和数据库之间进行调解
      • 在服务器日志管理器和原始系统之间使用消息队列,为从用户到系统的命令提供传输机制
      有许多包和工具可以用来实现这个场景,但我假设您需要一个主要基于Python的解决方案,并提出一些具体的建议

      • 用作您的数据库
      • 用作原始系统和MongoDB数据库之间接口的日志处理程序
      • 使用Twisted作为核心框架,用Python开发服务器应用程序
      • 用作日志管理器和原始系统之间的消息队列

      如果您准备考虑使用基于非Python的解决方案,我建议使用(基于JavaScript的环境)开发Web客户端环境和日志管理器。我已经在使用Twisted来处理线程/请求,因此我将进一步探讨这种方法。另外,我的问题是,是否有一种方法可以“订阅”日志级别并获取信息。。但我想我需要自己去发展。我想我将使用一个简单的内存解决方案与数据库相比,因为我不太感兴趣的客户机上的许多滚屏/历史,您可能需要考虑基于磁盘备份的基于内存的解决方案。