log4cplus在vs下安装,在qt中运行

1 篇文章 0 订阅
1 篇文章 0 订阅

下载链接:

https://nchc.dl.sourceforge.net/project/log4cplus/log4cplus-stable/2.0.5/log4cplus-2.0.5.7z

下载后,解压。

找到msvc14文件夹,在里面找到VS的解决方案,打开它。

打开后,根据所需要求,设置项目的属性,如果是需要在x86环境下使用,就设置为x86,如果是在debug下用就设置为debug,解决方案默认的好像是多字节字符集,如果要在Qt中使用,最好改为Unicode字符集。

右键生成这些项目

找到解决方案所在的文件夹里面 Win32\bin.Debug(我用的是win32如果是x64的话,就不一样),在这个文件夹里面找到dll和lib。

加载到自己的项目里面。

如果是qt环境的话用log4cplusSD.lib,如果不是的话就随便吧。

最后一定要注意:不要声明全局变量或者静态变量的log对象,最好别把初始化弄到构造函数里面。

代码:

 

#include <log4cplus/logger.h>
#include <log4cplus/configurator.h> 
#include <log4cplus/layout.h> 
#include <log4cplus/loggingmacros.h> 
#include <log4cplus/helpers/stringhelper.h> 
#include <QString>
#include <Windows.h>
#include <iostream>
#define MY_LOG_FILE_PATH L".\\logconfig.property"    //配置文件路径
using namespace std;
using namespace log4cplus;、

class Log
{
public :
	Log();
	~Log();
	void Init();
	void output_Log(QString);
private:
	Logger logger;
};


Log::Log()
{
	
}

void Log::Init()
{
	log4cplus::initialize();    //初始化日志
	log4cplus::PropertyConfigurator::doConfigure(MY_LOG_FILE_PATH);    //读取配置文件

	logger = log4cplus::Logger::getRoot();						   //根记录器始终被实例化并可用。它的名字是"root"
}

Log::~Log()
{

}

void Log::output_Log(QString msg)
{
	LOG4CPLUS_DEBUG(logger,msg.toStdString().c_str());
}

配置文件:

#RootLogger配置格式:log4cplus.rootLogger=[LogLevel],appenderName1,appenderName2,...,如此处LogLevel为DEBUG,appenderName1为 rootLogger
log4cplus.rootLogger=DEBUG,rootLogger

#设置日志追加到文件尾
log4cplus.appender.rootLogger=log4cplus::RollingFileAppender  
#log4cplus.appender.rootLogger=log4cplus::ConsoleAppender     #设置直接在控制台输出
 
#设置日志文件大小
log4cplus.appender.rootLogger.MaxFileSize=100MB
 
#设置生成日志最大个数
log4cplus.appender.rootLogger.MaxBackupIndex=2
 
#设置输出日志路径
log4cplus.appender.rootLogger.File=rootLogger.log
log4cplus.appender.rootLogger.layout=log4cplus::PatternLayout
 
#设置日志打印格式
log4cplus.appender.rootLogger.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
 
#设置日志级别范围
log4cplus.appender.rootLogger.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.rootLogger.filters.1.LogLevelMin=TRACE
log4cplus.appender.rootLogger.filters.1.LogLevelMax=FATAL
log4cplus.appender.rootLogger.filters.1.AcceptOnMatch=true
log4cplus.appender.rootLogger.filters.2=log4cplus::spi::DenyAllFilter
  
#=====================================================================================
log4cplus.logger.test=DEBUG,test
log4cplus.appender.test=log4cplus::RollingFileAppender  
log4cplus.appender.test.File=test.log
log4cplus.appender.test.layout=log4cplus::PatternLayout
log4cplus.appender.test.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
log4cplus.appender.test.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.test.filters.1.LogLevelMin=TRACE
log4cplus.appender.test.filters.1.LogLevelMax=FATAL
log4cplus.appender.test.filters.1.AcceptOnMatch=true
log4cplus.appender.test.filters.2=log4cplus::spi::DenyAllFilter
log4cplus.appender.test.MaxFileSize=100MB
log4cplus.appender.test.MaxBackupIndex=2

#如何防止自定义的logger和root重复写入日志
log4cplus.additivity.test=false

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值