shell 脚本中如何获取 python logging 打印的信息?

发布于 2022-09-07 15:32:15 字数 639 浏览 23 评论 0

在 shell 脚本中调用 python 的接口,但是 python API 是通过 python 的 logging 把相关信息打印到屏幕上的,不知道这种情况在 shell 中怎么获取这些 logging 信息,请指教。
代码中是这么写的:

import logging

......

logger = logging.getLogger("123")

......

def debug(msg):
    logger.setLevel(logging.DEBUG)
    debughandler = logging.StreamHandler()
    debughandler.setLevel(logging.DEBUG)
    fmt = '%(asctime)s - %(levelname)s - %(message)s'
    formatter = logging.Formatter(fmt)
    debughandler.setFormatter(formatter)
    logger.addHandler(debughandler)
    logger.debug(msg)
    logger.removeHandler(debughandler)

通过 logger.debug(msg) 打印的信息怎么在 shell 中捕捉到?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过期以后 2022-09-14 15:32:15

思路:
logger模块里面有写入文件的方法,将log的内容写入一个文件,然后shell脚本读取log文件即可。

以下摘自: https://cuiqingcai.com/6080.html

import logging
 
logging.basicConfig(level=logging.DEBUG,
                    filename='output.log',
                    datefmt='%Y/%m/%d %H:%M:%S',
                    format='%(asctime)s - %(name)s - %(levelname)s - %(lineno)d - %(module)s - %(message)s')
logger = logging.getLogger(__name__)
 
logger.info('This is a log info')
logger.debug('Debugging')
logger.warning('Warning exists')
logger.info('Finish')

这里我们指定了输出文件的名称为 output.log,另外指定了日期的输出格式,其中年月日的格式变成了 %Y/%m/%d,另外输出的 format 格式增加了 lineno、module 这两个信息,运行之后便会生成一个 output.log 的文件

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文