鍍金池/ 問答/Python  Linux  網(wǎng)絡(luò)安全/ python logging日志配置,如何不輸出到控制臺

python logging日志配置,如何不輸出到控制臺

我的日志配置如下,運(yùn)行時自動輸出到控制臺,用nohup掛起,相應(yīng)的輸出也會輸出nohup.out
同時my.log也會有正確的日志輸出
my.log的日志輸出格式是正確的,輸出到控制臺的日志和ide(pychram)調(diào)試時產(chǎn)生的日志一樣

logHandler = TimedRotatingFileHandler("logs/my.log", when="midnight")
logFormatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
logHandler.setFormatter(logFormatter)
logger = logging.getLogger('myapp')
logger.addHandler(logHandler)
logger.setLevel(logging.INFO)

具體應(yīng)該怎么修改?

回答
編輯回答
喜歡你

無需改python代碼,修改一下啟動腳本更好,可以將輸出定義到/dev/null。如下:

#!/usr/bin/env bash

nohup 你的執(zhí)行命令 > /dev/null 2>&1 &

詳細(xì)解釋:
> /dev/null 就是把標(biāo)準(zhǔn)輸出流(代號是1)重定向到一個不存在的設(shè)備里,也就是直接丟棄。2>&1就是把標(biāo)準(zhǔn)錯誤流(代號是2)放到標(biāo)準(zhǔn)輸出流(代號是1)里,也就是輸出流是標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤混雜在一起。這樣無論是標(biāo)準(zhǔn)輸出還是標(biāo)準(zhǔn)錯誤都被丟棄了。最后一個& 是后臺啟動。

2017年12月8日 20:29