2012-11-23 77 views
0

我有以下代碼Python類函數調用

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) 

現在這只是一個片段我留下了不少。但是當我的班級里正在調用日誌功能時。它只是將最後一條消息寫入文件,而不是從清理函數發送給它的新文件。有想法該怎麼解決這個嗎?

+2

有沒有你不使用''logging''模塊理由嗎? –

+1

我不確定你在問什麼。發生了什麼,你期望會發生什麼?對於預期的行爲,需要多少次調用日誌功能? (我期望至少有兩個。)另外:你的日誌文件是文本,你不應該打開它作爲二進制文件。 –

回答

1

你寫logmsg到該文件,但從來沒有在你的函數定義它:

log_file.write(logmsg) 

你必須有一個logmsg正在被使用,而不是全球。

您的實際消息變量稱爲message,寫來代替:

log_file.write(message) 
+0

大家好,謝謝。愚蠢的忽視。 – MrJester