0

次のコードがあります

class myclass(object):
    def __init__(self):
        self._fileA = os.path.join(dir, file)
        self._stuffA = 'NONE'

    def log(self, message):
        # Checks if the log file exists and if not creates a new one. 
        # Attempts to open the log file. If it cannot it raises an error
        try:
            log_file = open(self._fileA, 'ab')
        except IOError, e:
            print "!!! ERROR !!! - " + str(e)
            return 0

        now = datetime.datetime.now()
        # Sets up the date and the log file entry
        message = now.strftime("%Y-%m-%d %H:%M:%S") + ' - ' + str(message)
        # Writes the log entry then places a newline and closes the log file.
        log_file.write(logmsg)
        log_file.write('\n')
        log_file.close()

    def cleanup(self):
        logmsg = '----- ENDED SEARCH -----'
        self.log(logmsg)

今、これは私がかなり省略したスニペットです。しかし、ログ関数がクラス内から呼び出されているとき。クリーンアップ関数から送信された新しいメッセージを介して、最後のメッセージをファイルに書き込むだけです。これを修正する方法についてのアイデアはありますか?

4

1 に答える 1

1

ファイルに書き込みlogmsgますが、関数で定義しないでください。

    log_file.write(logmsg)

logmsg代わりに使用されているグローバルが必要です。

実際のメッセージ変数は と呼ばれますmessage。代わりに次のように記述します。

    log_file.write(message)
于 2012-11-23T17:30:48.083 に答える