当前位置:  开发笔记 > 运维 > 正文

编写应用程序时的调试级别

如何解决《编写应用程序时的调试级别》经验,为你挑选了3个好方法。

我想知道你们在编写应用程序时是否对调试级别有任何建议.

我想到了4个级别:

0:无调试
1:所有输入和输出
2:"我在这里"来自具有主要参数的重要功能的通知
3:所有变量详细



1> paxdiablo..:

这是我们在一个项目中所做的工作.它不是记录级别的圣经,只是一种可能性.记录应适合您的情况.

LOG_SEVERE,需要程序退出的严重错误(例如,在应用程序中,您的磁盘空间不足).

LOG_ERROR,无法从中恢复但程序可以继续运行的错误消息(例如,在服务器应用程序中,客户端通过错误数据发送但其他客户端可以继续运行).

LOG_WARNING,您应该收到通知的可恢复问题(例如,配置文件中的值无效,因此您回退到默认值).

LOG_INFO,信息性消息.

LOG_ENTRY,记录进入和退出所有功能.

LOG_PARM,日志进入并退出所有传递参数和返回值的函数(包括全局效果,如果有的话).

LOG_DEBUG,一般调试消息,基本上可以在一行输出的有用信息.

LOG_HIDEBUG,更详细的调试消息,例如缓冲区的十六进制转储.

每个级别还以"较低"级别记录消息.有时候一个问题是调试消息应该是LOG_DEBUG还是LOG_HIDEBUG,但我们主要是基于它将推送到日志文件的行数.


在第一遍,我读到最后一个作为LOG_HideBug ......:D

2> Jonathan Lef..:

我通常使用的不仅仅是四个级别,尽管它们不一定有名字.您可以查看syslog"守护进程"提供的级别.

0 - Emergency (emerg)
1 - Alerts (alert)
2 - Critical (crit)
3 - Errors (err)
4 - Warnings (warn)
5 - Notification (notice)
6 - Information (info)
7 - Debug (debug) 

(log4j包添加了一个低于'debug'的级别,称为'Trace',但只提供'Fatal',syslogsyslogd提供紧急,警报和严重.)这些并不直接相关,但应该给你一些思考.Pax提供的清单非常合理.

我经常发现有用的一件事是分段调试 - 可以为系统的不同组件设置不同级别的调试.例如,根据故障的位置,我可能需要在输入部分和宏管理部分进行大量调试,而不需要在主处理代码中进行任何调试.整个程序的单个调试级别比没有好,但对于复杂的程序,区分是非常宝贵的.

你可以找到我在GitHub上使用源SOQ(堆栈溢出问题)的存储库作为文件debug.h,debug.c,mddebug.c在SRC/libsoq 子目录.



3> Toon Krijthe..:

我有:

严重/致命,程序无法继续,通常用户丢失它.

错误,有些错误,使用数据可能会损坏,但你可以幸运.

警告,这不对,我可以继续,但请看看.

提示/信息,我想说点什么,但我不指望你听.

调试,所有信息只对程序员有意义.

Normaly最低的两个级别被阻止.但显示其他人.如果你想阻止致命等级,对我很好,但不要指望我事后清理乱七八糟(不幸的是我仍然要......).

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有