xingzilong
2017-08-18 9e5babf9db52e64bdae60137be7696e56241fca6
RtspFace/logger.h
@@ -1,55 +1,23 @@
/* ---------------------------------------------------------------------------
** This software is in the public domain, furnished "as is", without technical
** support, and with no warranty, express or implied, as to its usefulness for
** any purpose.
**
** logger.h
**
** -------------------------------------------------------------------------*/
#ifndef LOGGER_H
#define LOGGER_H
#include "Logger/src/logger.hpp"
#include <string.h>
#include <unistd.h>
#include "log4cpp/Category.hh"
#include "log4cpp/FileAppender.hh"
#include "log4cpp/PatternLayout.hh"
extern Logger g_logger;
#define LOG_ENDL     std::endl
#define WARN         WARNING
#define LOG(__level)  log4cpp::Category::getRoot() << log4cpp::Priority::__level << __FILE__ << ":" << __LINE__ << "\t"
#define LOGP(__level, __format, arg...) log4cpp::Category::getRoot().log(log4cpp::Priority::__level, "%s:%d\t" __format, __FILE__, __LINE__, ##arg);
#define LOG(__level)  g_logger << __level << __FILE__ << ":" << __LINE__ << "\t"
#define LOGP(__level, __format, arg...)  { char msg[1024]; sprintf(msg, "%s:%d\t" __format, __FILE__, __LINE__, ##arg); g_logger << __level << msg << LOG_ENDL; }
#define LOG_DEBUG    LOG(DEBUG) // Debug message do not care in any production environment
#define LOG_INFO     LOG(INFO) // Not significant event but useful for deal with online problem
#define LOG_NOTICE   LOG(NOTICE) // Important event
#define LOG_WARN     LOG(WARN) // Important event or input which will lead to errors
#define LOG_WARN     LOG(WARNING) // Important event or input which will lead to errors
#define LOG_ERROR    LOG(ERROR) // Error message means program running in an abnormal (not expected) way
inline void initLogger(int verbose)
{
   // initialize log4cpp
   log4cpp::Category &log = log4cpp::Category::getRoot();
   log4cpp::Appender *app = new log4cpp::FileAppender("root", fileno(stdout));
   if (app)
   {
      log4cpp::PatternLayout *plt = new log4cpp::PatternLayout();
      if (plt)
      {
         plt->setConversionPattern("%d [%-6p] - %m%n");
         app->setLayout(plt);
      }
      log.addAppender(app);
   }
   switch (verbose)
   {
      case 2: log.setPriority(log4cpp::Priority::DEBUG); break;
      case 1: log.setPriority(log4cpp::Priority::INFO); break;
      default: log.setPriority(log4cpp::Priority::NOTICE); break;
   }
   LOG_INFO << "level:" << log4cpp::Priority::getPriorityName(log.getPriority());
}
#endif