如何把日志写到文件里
gbsrept 发布于2020-06 浏览:2991 回复:1
0
收藏
最后编辑于2022-04

之前为了解决AI Studio界面刷新后无法看到输出,写了一小段来解决( https://aistudio.baidu.com/aistudio/projectdetail/380314 )。

但是paddle官方更倾向于让我们用logger来解决这个问题,刚好在参加最近的活动时,基线里总是有这句话:

from parl.utils import logger

所以就研究了一下源码,对应的地方是这么写的:

def _getlogger():
    logger = logging.getLogger('PARL')
    logger.propagate = False
    logger.setLevel(logging.DEBUG)

    if 'DEBUG' in os.environ:
        handler = logging.FileHandler('parl_debug.log')
        handler.setFormatter(_Formatter(datefmt='%m-%d %H:%M:%S'))
        logger.addHandler(handler)
        return logger

    if 'XPARL' not in os.environ:
        handler = logging.StreamHandler(sys.stdout)
        handler.setFormatter(_Formatter(datefmt='%m-%d %H:%M:%S'))
        logger.addHandler(handler)
    return logger


_logger = _getlogger()


所以,只要在执行 import之前,运行这两行就可以把输出同时写进文件 parl_debug.log :

import os
os.environ['DEBUG']='DEBUG'
os.environ['XPARL']='XPARL'

但是如果已经import了,需要强制再执行一次,类似这样:

from parl.utils import logger
logger._logger=logger._getlogger()

当然,如果直接 import logging 来搞,就更自由了。

收藏
点赞
0
个赞
共1条回复 最后由用户已被禁言回复于2022-04
#2wangwei8638回复于2020-06

赞,很多地方需要用到

0
TOP
切换版块