Log.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*************************************************************
  2. /* Copyright (C), 2008-2010, StoneU Tech. Co., Ltd.
  3. /* 文件名: Log.h
  4. /* 作者: Jesse
  5. /* 创建日期: 2010-07-16
  6. /* 版本号: V1.0
  7. /* 描述: 对Log4cpp日志进行封装
  8. /* 其它:
  9. /* 主要类模块: CLog类,维护一个m_pLog静态指针,所有日志操作都必须通过该指针
  10. /* 历史修改记录:
  11. /* 作者 时间 版本 描述
  12. /* Jesse 10/07/16 1.0 创建这个模块
  13. ***************************************************************/
  14. #ifndef _LOG_H
  15. #define _LOG_H
  16. #if _MSC_VER >= 1000
  17. #pragma once
  18. #endif // _MSC_VER >= 1000
  19. extern "C"
  20. {
  21. #include "log4c.h"
  22. }
  23. namespace SToneULog
  24. {
  25. #define LOG4C_BUFFER_SIZE_MAX 1024*10
  26. static int g_nLogNum = 0;
  27. static log4c_category_t* g_pRoot = NULL;
  28. class CLog
  29. {
  30. private:
  31. //static CLog* m_pLog;
  32. const char *m_pFileName;
  33. const char *m_pFuncName;
  34. int m_nLinNo;
  35. public:
  36. CLog(const char *pFileName, const char *pFuncName, int nLineNo):
  37. m_pFileName(pFileName),
  38. m_pFuncName(pFuncName),
  39. m_nLinNo(nLineNo)
  40. {
  41. }
  42. ~CLog()
  43. {
  44. };
  45. //static CLog* GetInstancePtr();
  46. //static CLog GetInstance(const char *pFileName, const char *pFuncName, int nLineNo);
  47. //int CreateLog(char chLogPath[MAX_PATH]="");
  48. //void DestroyLog();
  49. //void Output(const char *pFormat, ...);
  50. void operator()(const char *pszFmt, ...) const
  51. {
  52. char strMsgBuffer[LOG4C_BUFFER_SIZE_MAX] = {0};
  53. va_list va;
  54. sprintf( strMsgBuffer, "%d Function %s at line %d in file %s;",
  55. ++g_nLogNum, m_pFuncName, m_nLinNo, m_pFileName );
  56. strncat( strMsgBuffer, pszFmt, strlen(pszFmt) + 2 );
  57. va_start(va, pszFmt);
  58. log4c_category_vlog(g_pRoot, LOG4C_PRIORITY_ERROR, strMsgBuffer, va);
  59. va_end(va);
  60. }
  61. void operator()(const wchar_t *pszFmt, ...) const
  62. {
  63. va_list ptr;
  64. va_start(ptr, pszFmt);
  65. va_end(ptr);
  66. }
  67. };
  68. };
  69. #define LOG4C SToneULog::CLog(__FILE__, __FUNCTION__, __LINE__)
  70. #endif