您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将记录器消息存储在字符串中

将记录器消息存储在字符串中

它可以像登录StringIO对象一样简单:

import logging
try:
    from cStringIO import StringIO      # Python 2
except ImportError:
    from io import StringIO

log_stream = StringIO()    
logging.basicConfig(stream=log_stream, level=logging.INFO)

logging.info('hello world')
logging.warning('be careful!')
logging.debug("you won't see this")
logging.error('you will see this')
logging.critical('critical is logged too!')

print(log_stream.getvalue())

INFO:root:hello world
警告:root:请小心!
错误:根:您将看到此
也记录了CRITICAL:root:critical!

如果您只想记录WARN,INFO和ERROR级别的消息,则可以使用过滤器进行记录。LevelFilter下面检查每个日志记录的级别号,仅允许所需级别的那些记录:

import logging
try:
    from cStringIO import StringIO      # Python 2
except ImportError:
    from io import StringIO

class LevelFilter(logging.Filter):
    def __init__(self, levels):
        self.levels = levels

    def filter(self, record):
        return record.levelno in self.levels

log_stream = StringIO()    
logging.basicConfig(stream=log_stream, level=logging.NOTSET)
logging.getLogger().addFilter(LevelFilter((logging.INFO, logging.WARNING, logging.ERROR)))

logging.info('hello world')
logging.warning('be careful!')
logging.debug("you won't see this")
logging.error('you will see this')
logging.critical('critical is no longer logged!')

print(log_stream.getvalue())

INFO:root:hello world
警告:root:请小心!
错误:根:您将看到此
其他 2022/1/1 18:40:25 有506人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶