| |
5.错误报告
对于错误报告而言,根据开发的应用类型的不同,需要采取不同的处理方法。例如,如果开发的是命令行工具的话,常用的方法是通过把错误消息递给stderr来告知用用户出错情况。如果开发的是诸如嵌入式Linux应用之类的具有I/O能力的应用程序的话,错误报告的形式就多了,比如专门的日志或标准系统日志(syslog)。其中,syslog函数的原型如下所示:
#include <syslog.h>
void syslog( int priority, char *format, ... );
对于syslog函数,我们需要提供优先级、格式化字符串等参数。它的用法类似于printf函数。优先级可以从这里选择一个:LOG_EMERG、 LOG_ALERT、LOG_CRIT、LOG_ERR、LOG_WARNING、LOG_NOTICE、LOG_INFO或者 LOG_DEBUG。 下面以实例说明如何使用syslog函数为系统日志生成一个消息:
#include <syslog.h>
int main()
{
syslog( LOG_ERR, "Unable to load configuration!" );
return 0;
}
程序执行后,位于 /var/log/_messages的系统日志更新如下:
Aug 16 21:33:16 Ian test: Unable to load configuration!
本例中,test是上面列出的程序名,Ian是主机名。系统日志的好处是可以记录许多的错误报告。凭借它,开发人员能够了解消息在哪里生成的、哪一个能够帮助理解问题等等。对于系统应用和守护进程来说,syslog的格外有用。
除此之外,错误报告还有一个注意事项,那就是报告的错误一定要具体。为了能够让用户恰当的处理发生的错误,错误消息一定要唯一的标识出错误来。错误消息本身不能模棱两可,或者具有歧义性。 |
|