zoukankan      html  css  js  c++  java
  • [高并发引擎]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,嘿嘿  
  • 相关阅读:
    [MFC]CImageList仅显示黑色的问题
    [hessdroid]Android下使用Hessian与Java服务端通讯的传值测试
    [MFC]Sqlite问题小记
    [MFC] FTP 遍历服务器目录文件卡住的问题
    ExtJs 备忘录(9)—— Ext常用属性、方法小结 [系列完]
    [MFC]托盘图标删除后不自动消失的问题
    RIL接听电话没有声音的问题 [ RIL_Answer | RIL_SetAudioDevices ]
    [Qt]Qt Creator汉化方法
    [C++]遍历可变参数 (va_list)
    [杀毒]删除U盘autorun.inf
  • 原文地址:https://www.cnblogs.com/libgod/p/3231774.html
Copyright © 2011-2022 走看看