2016-11-12 165 views
8

我正在使用TensorFlow-Slim,它有一些有用的日誌記錄打印到控制檯tf.logging。我想將這些日誌重定向到一個文本文件,但是找不到這樣做的方法。我查看了tf_logging.py源代碼,該代碼公開了以下內容,但似乎沒有將日誌寫入文件的選項。請讓我知道如果我錯過了什麼。如何將TensorFlow日誌記錄重定向到文件?

__all__ = ['log', 'debug', 'error', 'fatal', 'info', 'warn', 'warning', 
      'DEBUG', 'ERROR', 'FATAL', 'INFO', 'WARN', 
      'flush', 'log_every_n', 'log_first_n', 'vlog', 
      'TaskLevelStatusMessage', 'get_verbosity', 'set_verbosity'] 

回答

2

你是對的,沒有旋鈕可以讓你做到這一點。

如果你真的,肯定的,絕對不能忍受,tf.logging是基於python日誌記錄。所以, import logging tf.logging._logger.basicConfig(filename='tensorflow.log', level=logging.DEBUG)

請注意,您在不受支持的路徑上自己,並且該行爲可能會隨時中斷。

您也可以在我們的github issue頁面提交功能請求。

+0

@ matlibplotter的答案有效。 – empty

0

如果您在項目中使用python日誌記錄,其中一個選項是在日誌記錄配置文件中定義名爲「tensorflow」的記錄器。

然後_logger = _logging.getLogger('tensorflow')將使用您的配置文件中的記錄器和指定的處理程序。

8
import logging 

# get TF logger 
log = logging.getLogger('tensorflow') 
log.setLevel(logging.DEBUG) 

# create formatter and add it to the handlers 
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 

# create file handler which logs even debug messages 
fh = logging.FileHandler('tensorflow.log') 
fh.setLevel(logging.DEBUG) 
fh.setFormatter(formatter) 
log.addHandler(fh) 

我的解決方案靈感來源於this thread

相關問題