|
00001 #ifndef EZLOGGER_FORMAT_POLICY_HPP_HEADER_GRD_ 00002 #define EZLOGGER_FORMAT_POLICY_HPP_HEADER_GRD_ 00003 00004 #include <string> 00005 #include <stdio.h> 00006 #include <time.h> 00007 00008 #include "ezlogger_misc.hpp" 00009 00010 namespace axter 00011 { 00023 class ezlogger_format_policy 00024 { 00025 public: 00026 inline static std::string get_log_prefix_format(const char*FileName, 00027 int LineNo, const char*FunctionName, ext_data levels_format_usage_data) 00028 { 00029 std::string FileNameOnly = FileName; 00030 size_t pos = FileNameOnly.rfind('\\'); 00031 if (pos != std::string::npos) 00032 { 00033 FileNameOnly = FileNameOnly.substr(pos+1); 00034 } 00035 char FileNameFormat[999] = {0}; 00036 sprintf(FileNameFormat, "%-32s(%5.5i): , [%-16s], [s_%i] [%s, ", 00037 FileNameOnly.c_str(), LineNo, FunctionName, levels_format_usage_data.m_severity_level, get_current_time_str().c_str()); 00038 return FileNameFormat; 00039 } 00040 private: 00041 inline static std::string get_current_time_str() 00042 { 00043 time_t t = time(0) ; 00044 std::string tmp = ctime(&t); 00045 if (tmp.size()) tmp[tmp.size() -1] = ']'; 00046 return tmp; 00047 } 00048 }; 00049 } 00050 00051 #endif //EZLOGGER_FORMAT_POLICY_HPP_HEADER_GRD_