`

[C++][Logging] 项目中写日志模块的实现

 
阅读更多
    一提到log,相信很多人就知道我要写些什么东西了,在所有的项目中都有自己一套写日志的模块。下面呢,我就根据平时的项目的需求写了一个比较简单使用的logger,方便输出各种等级的log。

    事先声明一下,代码仅供大家学习参考之用,有什么不足的地方还请大家提出来。在实际使用中可以考虑把log放入一个list,然后用一个线程专门负责写log.

    下面logger的结构,有需要的源代码的,索取一下密码,谢谢!

 class Logger
{
public:
    static void InitLoggerConfig(void);
    static void StringLog(LogLevel logLevel, const string& strFuctionName, int lineNumber, string strFileName, const char* strInfo);
    static void Log(LogLevel logLevel, const string& strFuctionName, int  lineNumber, string strFileName, const char* strFormat, ...);
    static void Log(LogLevel logLevel, StringBuilder& stringBuilder, const string& strFuctionName, int  lineNumber, string strFileName);
    static void RetureLog(LogLevel logLevel, const string& strFuctionName, int  lineNumber, string strFileName, const char* strInfo);
    static void LogPrinter(LogLevel logLevel, const char* strInfo, ...);

private:
    static string GetFileMainPath();

private:
    static string     mStrLog;
    static string     mStrFileName;
    static string     mStrFileMainPath;
    static time_t     mTimeValue;
    static LogLevel   mLogLevel;
    static tm         mDateTime;
    static LogManager mLogManager;

};


//测试代码
int main()
{
    const char *pInfo = "strInfo";
    const char *pWarringInfo = "Waring Log";
    const char *pErrorInfo = "Error Log";
    const char *pFatalInfo = "Fatal Log";
    const char *pDebugInfo = "Debug Log";

    INIT_LOG();

    INFO_LOG(pInfo);
    WARN_LOG(pWarringInfo);
    ERR_LOG(pErrorInfo);
    FATAL_LOG(pFatalInfo);
    DEBUG_LOG(pDebugInfo);

    INFO("%s", pInfo);
    WARN("%s",pWarringInfo);
    ERR (" %s",pErrorInfo);
    FATAL(" %s",pFatalInfo);
    DEBUG(" %s",pDebugInfo);

    int i = 0;
    XX_INFO_LOG( pInfo << &i);
    XX_WARN_LOG( pWarringInfo << 1 );
    XX_ERR_LOG( pErrorInfo << 2 );
    XX_FATAL_LOG( pFatalInfo << 3 );
    XX_DEBUG_LOG( pDebugInfo << 4 );
   
    LOG_PRINTER(INFO,"%d %f %c %s", 1, 1.2, 'c', "123");
    LOG_PRINTER(FATAL,"%d %f %c", 1, 1.2, 'c');
    LOG_PRINTER(ERR,"%d %f %c", 1, 1.2, 'c');

      return 0;
}





分享到:
评论
2 楼 u013189503 2015-10-16  
来个密码吧
1 楼 wyf_vc 2013-03-14  
来个密码啊!!

相关推荐

    python的logging模块

    用python写程序的,作为一个完整的项目而言,必须要有日志模块,而python的logging模块为我们提供了这么一种很好的机制,很方便的解决了这个问题。

    Android-logging-aspect项目中日志收集实现AOP和Listener两种全局实现

    logging-aspect 项目中日志收集实现AOP 和 Listener两种全局实现

    详解Python中logging日志模块在多进程环境下的使用

    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行...这篇文章给大家主要介绍了在Python中logging日志模块在多进程环境下的使用,需要的朋友可以参考借鉴,下面来一起看看吧。

    ASP.NET Core开发教程之Logging利用NLog写日志文件

    本文主要介绍了ASP.NET Core 开发-Logging 使用NLog 写日志文件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 NLog 可以适用于 .NET Core 和 ASP.NET Core 。 ASP.NET Core已经内置...

    python logging 模块

    logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而...

    Python中内置的日志模块logging用法详解

    Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志...

    Java自定义日志模块实现

    自定义日志模块(接口及代理实现),而不直接使用第三方日志框架接口,避免在日志框架升级或者切换时,代码过多耦合。 这个举例说明一下: 比如,在某一项目开始时使用的是“log4j”框架,后面经过研究发现“sf4j...

    Python logging模块异步线程写日志实现过程解析

    主要介绍了Python logging模块异步线程写日志实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python的logging模块.pdf

    详解python的日志模块logging和django中对logging模块的使用

    A lightweight C++ logging library.zip

    A lightweight C++ logging library

    python logging日志模块以及多进程日志详解

    1. logging日志模块介绍 python的logging模块提供了灵活的标准模块,使得任何Python程序都可以使用这个第三方模块来实现日志记录。python logging 官方文档 logging框架中主要由四个部分组成: Loggers: 可供程序...

    Python中logger日志模块详解

    logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而...

    python中日志logging模块的性能及多进程详解

    Java 中最通用的日志模块莫过于 Log4j 了,在 python 中,也自带了 logging 模块,该模块的用法其实和 Log4j 类似。日志是记录操作的一种好方式。但是日志,基本都是基于文件的,也就是要写到磁盘上的。这时候,磁盘...

    Linux项目c++日志系统linux-project-c-logging-system-master.zip

    Linux项目c++日志系统linux-project-c-logging-system-master.zip

    python中logging模块

    转载于https://www.cnblogs.com/Nicholas0707/p/9021672.html,支持正版

    详解Python中的日志模块logging

    在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4cpp,而在python中,我们不需要第三方的日志组件,因为它已经为我们提供了简单易用、且功能强大的日志模块:logging。logging模块...

Global site tag (gtag.js) - Google Analytics