簡體   English   中英

python記錄調試到文件錯誤到stdout

[英]python logging debug to file errors to stdout

python日志記錄模塊中有什么方法可以將信息和錯誤發送到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

您需要將consoleHandler日志級別設置為logging.INFO以通過處理程序記錄級別信息或更高級別的消息:

consoleHandler.setLevel(logging.INFO)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM