在Python中使用curses和日志记录
我在使用curses这个库的同时,也在用日志模块(logging),但是在启动curses后,日志记录出现了问题。
在调用curses.initscr()
之前,日志是正常工作的,会根据不同的级别在控制台上打印一些文本。
有没有什么办法可以解决这个问题呢?
1 个回答
4
一旦初始化了curses库,你就应该通过它来进行所有的输出,否则显示出来的内容会很奇怪(就像你现在看到的那样)。
你不能直接使用print或者sys.(stdout|stderr).write,因为这样会干扰到ncurses的输出。
最好的解决办法是,创建一个ncurses的“垫子”来用作日志记录,把所有的日志信息都重定向到这个“垫子”上。你可以自定义你的日志处理器来实现这个功能(可以参考一下logging.handlers,获取一些灵感)。