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,嘿嘿  
  • 相关阅读:
    go语言笔记——append是内置的函数!!!new是一个函数!!!调试可以使用闭包,本质上是print调试,尼玛!
    go语言笔记——defer作用DB资源等free或实现调试
    提高mysql查询效率的六种方法
    无线网络wifi (WPA/WPA2)密码破解方法
    wifi密码破解方法总结(含破解软件下载链接)
    linux 创建账户
    vim中设置tab的长度的方法
    JAVAC 命令使用方法
    Linux环境下编译并执行ava helloworld程序
    java hadoop file system API
  • 原文地址:https://www.cnblogs.com/libgod/p/3231774.html
Copyright © 2011-2022 走看看