#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 appender
DailyRollingFileAppenderPtr 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 logger
log4cxx::LoggerPtr g_log_ptr = log4cxx::Logger::getRootLogger();
g_log_ptr->setLevel(log4cxx::Level::getDebug());
g_log_ptr->addAppender(rollingAppenderptr);
}
c++ log4cxx自定义日志存放目录
最新推荐文章于 2022-09-21 09:09:27 发布