有多種方法可以設置IPython工作目錄。如果你沒有在你的IPython profile/config,environment或notebook中設置這些,日誌應該在你的工作目錄中。也試試$ ipython locate
打印默認的IPython目錄路徑,日誌可能在那裏。
給它一個絕對的文件路徑,看看它是否工作呢?
除此之外調用logging.basicConfig
似乎並沒有做一個IPython的筆記本電腦裏的任何東西:
# In:
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger()
logger.debug('root debug test')
有沒有輸出。
根據文檔,如果根記錄器已經爲它配置了處理程序,則logging.basicConfig
不會執行任何操作。這似乎是這種情況,IPython顯然已經建立了根記錄器。我們可以確認:
# In:
import logging
logger = logging.getLogger()
logger.handlers
# Out:
[<logging.StreamHandler at 0x106fa19d0>]
所以我們可以嘗試設置手動根記錄器級別:
import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logger.debug('root debug test')
它產生於筆記本電腦格式化輸出:
現在到設置文件記錄器:
# In:
import logging
# set root logger level
root_logger = logging.getLogger()
root_logger.setLevel(logging.DEBUG)
# setup custom logger
logger = logging.getLogger(__name__)
handler = logging.FileHandler('model.log')
handler.setLevel(logging.INFO)
logger.addHandler(handler)
# log
logger.info('test info my')
這導致寫入輸出到筆記本和model.log文件,這對我來說位於我開始IPython和筆記本從一個目錄。
請注意,在不重新啓動IPython內核的情況下重複調用這段代碼將導致在每次運行時爲記錄器創建並附加另一個處理程序,並且隨着每次日誌調用記錄到文件的消息數量將增加。
謝謝,我有搜索目錄,它不存在... – user2808117
@ user2808117 Humm,它應該在那裏或在當前的工作目錄,然後,你從哪裏啓動筆記本。你使用IPython profile/config並設置'c.NotebookManager.notebook_dir','c.FileNotebookManager.notebook_dir'或'c.NotebookApp.notebook_dir'? – famousgarkin
我有一個配置文件,但該屬性未配置。難道是由於某些原因,日誌文件不是在這種情況下創建的? (我用sudo運行'find',在根目錄下,找不到文件) – user2808117