Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 - Fatal编程技术网

Python 设置登录控制台脚本

Python 设置登录控制台脚本,python,logging,Python,Logging,我有一个python控制台脚本,我不想修改它的源代码 但是我想修改由脚本及其库完成的日志记录 示例: 我希望邮件发送到错误级别的邮件foo@example.com 我希望忽略foo.py文件的信息消息 我想在日志消息中包括PID 该脚本使用以下记录器: import logging logger=logging.getLogger(__name__) del(logging) 如果我不想修改控制台脚本的源代码,如何配置日志记录?您可以使用包装器脚本加载它。在包装器中,根据需要设置日志记录配

我有一个python控制台脚本,我不想修改它的源代码

但是我想修改由脚本及其库完成的日志记录

示例:

  • 我希望邮件发送到错误级别的邮件foo@example.com
  • 我希望忽略foo.py文件的信息消息
  • 我想在日志消息中包括PID
该脚本使用以下记录器:

import logging
logger=logging.getLogger(__name__)
del(logging)

如果我不想修改控制台脚本的源代码,如何配置日志记录?

您可以使用包装器脚本加载它。在包装器中,根据需要设置日志记录配置(例如,
logging.basicConfig()
,或根据需要添加日志记录处理程序),然后运行脚本。
如果脚本有一个主函数(在脚本中查找
如果uuuu name_uuuu==“uuuuuu main_uuuuu”:
),您只需导入文件并运行该函数:

import sys
import logging
logging.basicConfig(...)
import my_console_script
sys.exit(my_console_script.main())

如果它没有这样一个函数,那么只需导入它就会运行它的内容(您可以省略
sys.exit()
调用)。

您需要获取现有的lib记录器,将其删除并放置自定义记录器。 另见此处:

我在这里找到了一个解决方案:听起来像是一个肮脏的黑客,但也许没有更好的解决方案。