我想在我的应用程序(一个绘画类程序)中添加一些调试日志记录,并将这些信息写入一个文件可能会有好处。我当前的调试策略是连接一个自定义异常侦听器(系统异常挂钩)并允许用户通过电子邮件向我发送导致崩溃的堆栈跟踪的副本。在
这对于查看用户是如何导致程序崩溃非常方便的,但是我觉得日志文件肯定会有所帮助。 我想知道最好的办法是什么。我正在考虑通过命令行开关启用日志记录,并在程序每次“运行”时创建一个日志,并在发生崩溃时用电子邮件给自己发送一份日志副本。但是,如果应用程序未处于调试模式,日志将不会有帮助!在
我有点担心日志填充太快-如果我把日志放在一些鼠标运动事件处理程序中,那么它将创建许多条目。另外,一个日志文件可能会变得相当大,并且在检查bug报告时会填充与我无关的信息。在
你们怎么处理?我对日志记录的频率很感兴趣-因为我的应用程序对很多事件(例如鼠标移动;取决于用户输入)做出响应,我不想创建过多的日志记录。在
使用这个:http://docs.python.org/library/logging.html#memoryhandler。在
如前所述,您可以使用记录器模块。您可以设置默认的日志记录级别(例如警告),并将所有类型的消息放入代码中,从调试到关键。简而言之,如果您将日志记录级别设置为警告,即使您的代码记录调试消息,它们也不会出现在文件(或stdout)中。这是因为日志模块只记录优先级高于或等于Warning(警告、错误和严重)的消息。在
作为一个简单的解释,请看以下代码:
它会创建一个名为我的应用程序日志公司名称:
^{pr2}$如果您担心文件大小,可以使用旋转日志,它将根据您的条件丢弃最旧的日志:
在本例中,我使用了一个最大大小为100字节的日志文件(非常小,您应该提高它),备份计数为5。这意味着当一个日志达到100字节时,它将被“旋转”:一个新的(并且是空的)我的应用程序日志将被创造,旧的将成为我的应用程序日志.1。在下一轮我的应用程序日志.1将成为我的应用程序日志.2,在我的应用程序日志会有新的我的应用程序日志.1。它会重复,直到我们我的应用程序日志, 我的应用程序日志.1条,我的应用程序日志.2。。。我的应用程序日志.n(在本例中,限制为我的应用程序日志.5条)。当我们点击这个,并且需要旋转日志时我的应用程序日志.5文件将被丢弃。所以,大小限制为5*100字节。在
看看发生了什么:
如您所见,我们丢失了许多日志(0-15),但最近的日志在那里,保留了用户的可用空间。别忘了自下而上阅读日志:)
相关问题 更多 >
编程相关推荐