c++ log4cxx自定义日志存放目录

来源:互联网 发布:淘宝换货不需要申请吗 编辑:程序博客网 时间:2024/06/06 09:02
#include <log4cxx/logger.h>#include <log4cxx/helpers/pool.h>#include <log4cxx/basicconfigurator.h>#include <log4cxx/fileappender.h>#include <log4cxx/simplelayout.h>#include <log4cxx/propertyconfigurator.h>#include<log4cxx/patternlayout.h>#include<log4cxx/dailyrollingfileappender.h>#pragma comment(lib,"log4cxx.lib")InitLog(){    string conversionPattern = "[%d %M]: %m%n";log4cxx::PatternLayoutPtr layout = new PatternLayout();int len = MultiByteToWideChar(CP_ACP, 0, conversionPattern.c_str(), -1, NULL, 0);wchar_t *pStr = new wchar_t[(len + 1) * sizeof(wchar_t)];MultiByteToWideChar(CP_ACP, 0, conversionPattern.c_str(), -1, pStr, len);layout->setConversionPattern(pStr);delete[]pStr;pStr = nullptr;// creates daily rolling file appenderDailyRollingFileAppenderPtr rollingAppenderptr = new DailyRollingFileAppender();char svc_path[256] = { 0 };GetModuleFileNameA(NULL, svc_path, sizeof(svc_path));std::string str_svc_path = svc_path;std::string file_name = str_svc_path.substr(str_svc_path.find_last_of("\\/") + 1, 50);std::string file_path = str_svc_path.substr(0, str_svc_path.find_last_of("\\/") + 1);std::string Property = file_path + "Log\\Report.log";len = MultiByteToWideChar(CP_ACP, 0, Property.c_str(), -1, NULL, 0);pStr = new wchar_t[(len + 1) * sizeof(wchar_t)];MultiByteToWideChar(CP_ACP, 0, Property.c_str(), -1, pStr, len);rollingAppenderptr->setFile(pStr);delete[]pStr;pStr = nullptr;rollingAppenderptr->setDatePattern(_T("'.'yyyy-MM-dd"));rollingAppenderptr->setLayout(layout);log4cxx::helpers::Pool p;rollingAppenderptr->activateOptions(p);// configures the root loggerlog4cxx::LoggerPtr g_log_ptr = log4cxx::Logger::getRootLogger();g_log_ptr->setLevel(log4cxx::Level::getDebug());g_log_ptr->addAppender(rollingAppenderptr);}