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

#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);
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值