我想知道你们在编写应用程序时是否对调试级别有任何建议.
我想到了4个级别:
0:无调试
1:所有输入和输出
2:"我在这里"来自具有主要参数的重要功能的通知
3:所有变量详细
pax*_*blo 15
这是我们在一个项目中所做的工作.它不是记录级别的圣经,只是一种可能性.记录应适合您的情况.
每个级别还以"较低"级别记录消息.有时候一个问题是调试消息应该是LOG_DEBUG还是LOG_HIDEBUG,但我们主要是基于它将推送到日志文件的行数.
Jon*_*ler 10
我通常使用的不仅仅是四个级别,尽管它们不一定有名字.您可以查看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)
Run Code Online (Sandbox Code Playgroud)
(log4j包添加了一个低于'debug'的级别,称为'Trace',但只提供'Fatal',syslog
并syslogd
提供紧急,警报和严重.)这些并不直接相关,但应该给你一些思考.Pax提供的清单非常合理.
我经常发现有用的一件事是分段调试 - 可以为系统的不同组件设置不同级别的调试.例如,根据故障的位置,我可能需要在输入部分和宏管理部分进行大量调试,而不需要在主处理代码中进行任何调试.整个程序的单个调试级别比没有好,但对于复杂的程序,区分是非常宝贵的.
你可以找到我在GitHub上使用源SOQ(堆栈溢出问题)的存储库作为文件debug.h
,debug.c
,mddebug.c
在SRC/libsoq
子目录.
我有:
Normaly最低的两个级别被阻止.但显示其他人.如果你想阻止致命等级,对我很好,但不要指望我事后清理乱七八糟(不幸的是我仍然要......).
无论您选择什么,都会有您想看到的东西进入下一个级别......
我认为这个问题没有一个通用的答案,因为它非常依赖于应用程序正在做什么。就像海恩斯手册中油腻的页面一样(英国读者会明白我的意思),我倾向于发现你最终会在传统上很麻烦的地区进行大量伐木,而在会导致问题的地区几乎没有伐木。麻烦你下一个。
归档时间: |
|
查看次数: |
35603 次 |
最近记录: |