有多种方法可以设置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