在Python中使用curses和日志记录

2 投票
1 回答
1410 浏览
提问于 2025-04-17 10:53

我在使用curses这个库的同时,也在用日志模块(logging),但是在启动curses后,日志记录出现了问题。

在调用curses.initscr()之前,日志是正常工作的,会根据不同的级别在控制台上打印一些文本。

有没有什么办法可以解决这个问题呢?

1 个回答

4

一旦初始化了curses库,你就应该通过它来进行所有的输出,否则显示出来的内容会很奇怪(就像你现在看到的那样)。

你不能直接使用print或者sys.(stdout|stderr).write,因为这样会干扰到ncurses的输出。

最好的解决办法是,创建一个ncurses的“垫子”来用作日志记录,把所有的日志信息都重定向到这个“垫子”上。你可以自定义你的日志处理器来实现这个功能(可以参考一下logging.handlers,获取一些灵感)。

撰写回答