Libgod | 致力于高并发服务端开发..

[高并发引擎]Log模块

Log模块见雏形了,之所以最开始写Log模块,主要是考虑先写好了这个模块,以后在开发其他模块时,可以调用Log模块很容易的输出Log信息,方便开发过程中调试程序。Log模块大致如下:

在程序中调用Log模块输出日志信息,Log模块会根据Log等级判断是不是要把log信息输出到各个监听器,Log模块从配置模块读取配置信息,来设置最低输出的log等级和监听器。

各个监听器分别把信息输出到控制台,Log服务器,Log文件,系统日志等。

使用这个模块还是非常简单的,示例代码:

 
  1. #include "god/log.h"   
  2.   
  3. using namespace std;   
  4. using namespace G;   
  5.   
  6. static Logger::ptr g_loggera = Log::find("ModuleA");   
  7. static Logger::ptr g_loggerb = Log::find("ModuleB");   
  8.   
  9. int main(int argc, char *argv[]) {   
  10.     GOD_LOG_FATAL(g_loggera) << "Fatal,libgod";   
  11.     GOD_LOG_FATAL(g_loggerb) << "Fatal,嘿嘿";   
  12.   
  13.     GOD_LOG_ERROR(g_loggera) << "Error,libgod";   
  14.     GOD_LOG_ERROR(g_loggerb) << "Error,嘿嘿";   
  15.   
  16.     GOD_LOG_WARNING(g_loggera) << "Warning,libgod";   
  17.     GOD_LOG_WARNING(g_loggerb) << "Warning,嘿嘿";   
  18.   
  19.     GOD_LOG_INFO(g_loggera) << "Info,libgod";   
  20.     GOD_LOG_INFO(g_loggerb) << "Info,嘿嘿";   
  21.   
  22.     GOD_LOG_TRACE(g_loggera) << "Trace,libgod";   
  23.     GOD_LOG_TRACE(g_loggerb) << "Trace,嘿嘿";   
  24.   
  25.     GOD_LOG_DEBUG(g_loggera) << "Debug,libgod";   
  26.     GOD_LOG_DEBUG(g_loggerb) << "Debug,嘿嘿";   
  27.     return 0;   
  28. }  

运行结果:

  1. ./bin/log.exe   
  2. 2012-Nov-16 16:04:57.425740 FATAL ModuleA src/log.cpp:10 Fatal,libgod   
  3. 2012-Nov-16 16:04:57.426163 FATAL ModuleB src/log.cpp:11 Fatal,嘿嘿   
  4. 2012-Nov-16 16:04:57.426231 ERROR ModuleA src/log.cpp:13 Error,libgod   
  5. 2012-Nov-16 16:04:57.426390 ERROR ModuleB src/log.cpp:14 Error,嘿嘿   
  6. 2012-Nov-16 16:04:57.426460 WARNING ModuleA src/log.cpp:16 Warning,libgod   
  7. 2012-Nov-16 16:04:57.426516 WARNING ModuleB src/log.cpp:17 Warning,嘿嘿   
  8. 2012-Nov-16 16:04:57.426571 INFO ModuleA src/log.cpp:19 Info,libgod   
  9. 2012-Nov-16 16:04:57.426626 INFO ModuleB src/log.cpp:20 Info,嘿嘿  
posted @ 2013-08-02 09:18  libGod  阅读(133)  评论(0编辑  收藏  举报
//
// //
  libGod博客