25

loggingPythonシステムを使用するコードを書いています。アイデアは、LOGまだ存在しない場合はログを作成し、存在する場合はログを取得してそのファイルへのロギングを再開するというものです。これが私のコードです:

import logging
import os

log_filename='Transactions.log')
if os.path.isfile(log_filename)!=True:
    LOG = logging.getLogger('log_filename')
    LOG.setLevel(logging.DEBUG)
    # create file handler which logs even debug messages
    fh = logging.FileHandler('log_filename')
    fh.setLevel(logging.DEBUG)
    # create console handler with a higher log level
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)
    # create formatter and add it to the handlers
    formatter = logging.Formatter('-->%(asctime)s - %(name)s:%(levelname)s - %(message)s')
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)
    # add the handlers to the logger
    LOG.addHandler(fh)
    LOG.addHandler(ch)
else:
    LOG=logging.getLogger()

ブロックに問題があると思わelseれますが、修正方法がわかりません。誰かがこの状況に光を当てることができますか.

4

3 に答える 3

31

logging モジュールFileHandlerがそれを処理します。複雑さは必要ありません。

ハンドラーはオプションのmodeパラメーターを取り、データの書き込みまたは追加を開始するかどうかを指定します。

ドキュメントから:

class logging.FileHandler(filename, mode='a', encoding=None, delay=False)

指定されたファイルが開かれ、ログのストリームとして使用されます。modeが指定されていない場合 は、'a'が使用されます。

于 2017-01-20T13:37:27.880 に答える