我正在尝试实现一些记录消息的日志记录。我得到一些奇怪的行为所以我试图找到一个最小的例子,我发现here。当我只是将那里描述的简单示例复制到我的解释器中时,不会创建文件,如下所示:
In [1]: import logging
...: logging.basicConfig(filename='example.log',level=logging.DEBUG)
...: logging.debug('This message should go to the log file')
...: logging.info('So should this')
...: logging.warning('And this, too')
WARNING:root:And this, too
In [2]: ls example.log
File not found
任何人都可以帮我理解我做错了什么吗?感谢...
编辑:在第二次输入之后将输出更改为英语并删除了不必要的部分。唯一重要的是Python不会创建文件example.log
。
答案 0 :(得分:20)
您意外结果的原因是您在Python(看起来像IPython)之上使用了一些配置根记录器本身的东西。根据{{3}},
如果根记录器已经有处理程序,则此函数不执行任何操作 为它配置。
你用Python得到的是这样的:
C:\temp>python
ActivePython 2.6.1.1 (ActiveState Software Inc.) based on
Python 2.6.1 (r261:67515, Dec 5 2008, 13:58:38) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import logging
>>> logging.basicConfig(filename='example.log', level=logging.DEBUG)
>>> logging.debug('This message should go to the log file')
>>> logging.info('And so should this')
>>> logging.warning('And this, too')
>>> ^Z
C:\temp>type example.log
DEBUG:root:This message should go to the log file
INFO:root:And so should this
WARNING:root:And this, too
答案 1 :(得分:1)
请说明您正在使用的操作系统。
你是在运行Windows,也许是使用Cygwin?即使不是这看起来非常像环境变量问题。确保正确设置PYTHONPATH。我建议创建一个名为PYTHONPATH的系统变量,它包含你的python安装目录(可能类似于C:/ Python27),以及子目录' Lib',' Lib / lib-tk'和' DLLs'此文件夹中的目录也是如此。请参阅here。
不太可能......你在Linux系统上运行吗?确保在目录上设置了适当的权限。在bash中使用' ls -la'显示权限。从目录运行&ch; chmod u + w。'确保您拥有写入权限。
答案 2 :(得分:0)
我发现我的问题是我试图在嵌套的嵌套文件夹中创建日志文件。一旦我放弃了这个想法,它就变得稳定了。