【发布时间】:2016-04-05 22:19:00
【问题描述】:
我想要什么:我的 python 脚本运行,将日志消息输出到控制台和文件。
一旦 python 脚本完成运行,我希望能够删除/编辑日志文件。我在 Windows7 上使用 Spyder IDE。
示例代码:
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
hdlr = logging.FileHandler("/Users/mds/Dropbox/_python/logger-debug.txt")
logger.addHandler(hdlr)
logger.error("Am I duplicating error entries?")
hdlr.close()
我遇到的问题:
我第一次运行脚本时:
控制台:
runfile('C:/Users/mds/Dropbox/_python/logger-debugger.py', wdir='C:/Users/mds/Dropbox/_python')
ERROR:__main__:Am I duplicating error entries?
logger-debug.txt:
Am I duplicating error entries?
我第二次运行脚本: 控制台:
runfile('C:/Users/mds/Dropbox/_python/logger-debugger.py', wdir='C:/Users/mds/Dropbox/_python')
ERROR:__main__:Am I duplicating error entries?
logger-debug.txt
Am I duplicating error entries?
Am I duplicating error entries?
Am I duplicating error entries?
我第三次运行脚本:
控制台:
runfile('C:/Users/mds/Dropbox/_python/logger-debugger.py', wdir='C:/Users/mds/Dropbox/_python')
ERROR:__main__:Am I duplicating error entries?
logger-debug.txt
Am I duplicating error entries?
Am I duplicating error entries?
Am I duplicating error entries?
Am I duplicating error entries?
Am I duplicating error entries?
Am I duplicating error entries?
【问题讨论】:
-
你的代码真的那么简单吗?
-
@AlastairMcCormack 代码片段正是展示我在实际程序中的问题所必需的。
-
文件被锁定表明您的 Python 代码仍在运行,因为我从未见过在程序退出后保持锁定。可以用任务管理器验证吗?
-
@AlastairMcCormack 我正在 Spyder IDE 中运行脚本。只有在我关闭 Spyder 后,文件才会释放。但我试图在脚本本身 hdlr.close() 中显式释放文件
-
能否在关闭前运行 removehandler
标签: python windows logging spyder