python记录调试到文件错误到stdout

时间:2018-08-08 23:31:30

标签: python python-3.x logging

python日志记录模块中是否有任何方法可以将信息和错误发送到stdout并调试到文件。 脚本中的某些命令会产生很长的输出,我不想将其发送到stdout。

我正在使用以下日志记录功能,该功能会将日志写入文件和stdout

def mylog(release_num, logdir='/tmp'):
    applog = logging.getLogger()
    applog.setLevel(logging.DEBUG)
    formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s", "%b %d %Y %H:%M:%S")

    logfile = "{}/{}.log".format(logdir, release_num)

    if not os.path.exists(logdir):
        os.makedirs(logdir)

    fileHandler = logging.FileHandler(logfile, 'ab')
    fileHandler.setLevel(logging.DEBUG)
    fileHandler.setFormatter(formatter)
    applog.addHandler(fileHandler)

    cformat = logging.Formatter("[%(levelname)8s] : %(message)s")
    consoleHandler = logging.StreamHandler(sys.stdout)
    consoleHandler.setFormatter(cformat)
    log.addHandler(consoleHandler)

    return applog

1 个答案:

答案 0 :(得分:2)

您需要将consoleHandler的日志级别设置为logging.INFO,以通过处理程序记录级别信息或更高级别的消息:

consoleHandler.setLevel(logging.INFO)