Chinaunix首页 | 论坛 | 博客
  • 博客访问: 228301
  • 博文数量: 46
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 620
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-12 18:04
文章分类

全部博文(46)

文章存档

2010年(7)

2009年(39)

我的朋友

分类:

2009-01-12 18:24:20

日志级别的使用


1. 日志模块

   程序一般按照模块进行开发前,模块是已经确定的。
   日志模块做为基础模块,应该包含对所有模块的类型声明。
              

2. 日志级别

   日志一般分为以下级别:
  
       FATAL = 0, 严重错误
    ERROR,     一般错误
    WARN,      警告
    INFO,      信息
    TRACE,      跟踪
    DEBUG,     调式
    ALL_LOG_LEVEL 所有级别 指示程序打印范围时使用
  

     严重错误:

    
         出现该级别日志 表示代码编写上或者使用上存在严重错误。
         主要表现为客户程序员在使用框架程序或者基础程序库时出现使用上的问题导致。
        
         而框架程序或者基础程序库的开发人员编写代码过程中的错误一般是在该库或者框架调用发布之前
         就应该捕获。此类错误属于编写级别日志 使用调式级别即可。
        
         所以说 开发人员开发的程序如果提供给 其他人使用的时 必须提供此类级别的日志。提醒
         用户使用上错误。
        

     一般错误:

        
         一般错误指示, 函数在执行过程中发生错误, 没有按照指定的流程走到最后一步,
         执行中途退出函数。
         注意 正常的中途退出 不能算是错误
        

     警告:

        
         函数在执行过程中,发生 正常的中途退出 时, 应该打印 警告级别日志。
        

     信息:

         函数执行过程中, 发生一些重要的状态改变时应该打印 信息级别 日志。
        

     跟踪:

         该级别日志与调式级别应该均属于开发级别日志。
         跟踪日志一般打在函数的开始 和 正常结束处, 当中如果相关状态需要跟踪也可以打印。
        

     调试:   

         跟踪级别中 函数执行中如果相关状态需要跟踪也可以打印,也可以使用调试级别日志。
    

3. 日志打印的目标

   
    打印严重错误级别日志,马上定位客户程序使用问题。
    打印一般错误级别日志,马上定位程序执行过程中问题发生地点。
    打印警告级别日志, 马上定位程序可能出现问题的发生地点。
    打信息级别日志, 马上能够看出整个程序所有状态改变的过程。
    打印跟踪级别日志, 可以定位具体内部函数发生地点。
    打印调式级别日志,根据开发者需要打印相关数据信息。

       
4. 日志打印例子    
   

   int classname::functionname(p1, p2,...)
    {
   //函数开始处 打印trace日志
      logtrace((modulename, "classname::functionname begin with p1, p2, ..."));

   //函数中途非正常退出,打印error日志
      if(inner_func()== -1)
      {
    logerror((modulename, "classname::functionname failed with inner_func1() failed."));
    return -1;
      }

   //函数中途正常退出,打印warn日志
      if(inner_func2()== -1)
      {
    logwarn((modulename, "classname::functionname end with inner_func2() failed."));
    return 0;
      }

   //函数中途改变重要状态时 打印info日志
   state_change(x);
   loginfo((modulename, "classname::functionname change state to x"));
       

   //函数开始处 打印trace日志
      logtrace((modulename, "classname::functionname end ok."));
      return 0;

    }

 


阅读(805) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Debian系统安装

给主人留下些什么吧!~~