Log.cpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #include "Log.h"
  2. #include <QCoreApplication>
  3. #include <QThread>
  4. Log::Log(QObject *parent) :
  5. QObject(parent) {
  6. QString configPath = QCoreApplication::applicationDirPath() + "/log4j.properties";
  7. Log4Qt::PropertyConfigurator::configure(configPath);
  8. }
  9. Log::~Log() {
  10. }
  11. Log* Log::instance() {
  12. static Log log;
  13. return &log;
  14. }
  15. void Log::debug(const QString &log) {
  16. logger()->debug(log);
  17. }
  18. void Log::info(const QString &log) {
  19. logger()->info(log);
  20. }
  21. void Log::warn(const QString &log) {
  22. logger()->warn(log);
  23. }
  24. void Log::error(const QString &log) {
  25. logger()->error(log);
  26. }
  27. void Log::fatal(const QString &log) {
  28. logger()->fatal(log);
  29. }
  30. bool LogHelper::showFileFuncLine_ = false;
  31. LogHelper::LogHelper(const char *fileName, int lineNumber, const char *functionName)
  32. : version_(1)
  33. , line_(lineNumber)
  34. , file_(fileName)
  35. , function_(functionName)
  36. {
  37. }
  38. void LogHelper::writelogToLocal(LogHelper::LogType logtype, const QString &log)
  39. {
  40. QString threadText = QStringLiteral("0x%1").arg(quintptr(QThread::currentThreadId()));
  41. QString filter = QString("[file(%1)] [func(%2) line(%3) pid(%4)] ")
  42. .arg(file_)
  43. .arg(function_)
  44. .arg(line_)
  45. .arg(threadText);
  46. if(showFileFuncLine_) {
  47. switch (logtype) {
  48. case LGDebugMsg:
  49. Log::instance()->debug(filter+log);
  50. break;
  51. case LGInfoMsg:
  52. Log::instance()->info(filter+log);
  53. break;
  54. case LGWarningMsg:
  55. Log::instance()->warn(filter+log);
  56. break;
  57. case LGErrorMsg:
  58. Log::instance()->error(filter+log);
  59. break;
  60. case LGFatalMsg:
  61. Log::instance()->fatal(filter+log);
  62. break;
  63. default:
  64. Log::instance()->info(filter+log);
  65. break;
  66. }
  67. } else {
  68. switch (logtype) {
  69. case LGDebugMsg:
  70. Log::instance()->debug(log);
  71. break;
  72. case LGInfoMsg:
  73. Log::instance()->info(log);
  74. break;
  75. case LGWarningMsg:
  76. Log::instance()->warn(log);
  77. break;
  78. case LGErrorMsg:
  79. Log::instance()->error(log);
  80. break;
  81. case LGFatalMsg:
  82. Log::instance()->fatal(log);
  83. break;
  84. default:
  85. Log::instance()->info(log);
  86. break;
  87. }
  88. }
  89. }