マルチプロセス環境python logging印刷ログの混乱問題

784 ワード

解決策は次のとおりです.
logging.basicConfig(level=logging.INFO,
                        format='[%(asctime)s] p%(process)s {%(name)-12s:%(lineno)d} %(levelname)-8s - %(message)s',
                        datefmt='%m-%d %H:%M',
                        filename='taobao.log',
                        filemode='a') #     "a"   "w"

どんなに痛い悟りで、こんなに長い間困っていた問題は実はパラメータの配置が間違っていることだ.file Mode:ログファイルの開き方を示します.w-直接書きます.この構成を使用すると、システムが再起動するとログが空になり、1つのプロセスが開いた後、他のプロセスは使用できません.a-末尾追加は、ファイル末尾への追加書き込みを開くことができます.
私の主な言語はjavaで、pythonに移動した後にログのこのいくつかの穴を踏んだ.もう一つのピットは、異常スタックの印刷問題で、javaではloggerはerrorを使って直接印刷することができます.pythonではerrorは他のログ記録方法とあまり差がなく、異常スタックを印刷できません.印刷スタックはlogger.exception(" ", e)を使用してください.