【QsLog库的编译和使用】

前言

日志在项目中定位bug的根源起着重要的作用。

0x0 下载代码

https://github.com/victronenergy/QsLog.git

0x1 用VS2019打开.pro文件,配置项目类型

【QsLog库的编译和使用】_第1张图片

这里的属性需要和实际使用的项目保持一致,否则会造成程序崩溃

【QsLog库的编译和使用】_第2张图片

0x2 找到这两个文件以及头文件,放在电脑上的一个文件夹中

【QsLog库的编译和使用】_第3张图片
【QsLog库的编译和使用】_第4张图片

0x3 在项目中进行路径配置

第二个步骤也可以在链接器→常规→附加库目录进行路径的添加
【QsLog库的编译和使用】_第5张图片

【QsLog库的编译和使用】_第6张图片

0x4 在需要使用的项目中添加必要的头文件,初始化代码,销毁代码

#include "QsLogTest.h"
#include 
#include 
#include 
#include 
using namespace QsLogging;
QsLogTest::QsLogTest(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	QString m_AppPath = QApplication::applicationDirPath();
	QString iniFullPath = m_AppPath + INI_FILE_NAME;
	QSettings* iniFile = new QSettings(iniFullPath, QSettings::IniFormat);
	int logLevel = iniFile->value(INI_KEY_NAME).toInt();
	if (logLevel == 0) {
		iniFile->setValue(INI_KEY_NAME, 1);
	}
	else {
		logLevel = iniFile->value(INI_KEY_NAME).toInt();
	}
	logLevel = iniFile->value(INI_KEY_NAME).toInt();

	//Initialize logging mechanism
	Logger& logger = Logger::instance();
	logger.setLoggingLevel((Level)logLevel);

	/*Add stdout as destination*/
	DestinationPtr debugDestination(DestinationFactory::MakeDebugOutputDestination());
	logger.addDestination(debugDestination);

	/*Add files as destination*/
	const QString sLogPath(QDir(m_AppPath).filePath(LOG_FILE_NAME));
	DestinationPtr fileDestination(DestinationFactory::MakeFileDestination(sLogPath, EnableLogRotation, MaxSizeBytes(512 * 1024), MaxOldLogCount(5)));
	logger.addDestination(fileDestination);

	// Add QObject as destination
	//DestinationPtr objectDestination(DestinationFactory::MakeFunctorDestination(this, SLOT(writeLog(QString, int))));
	//logger.addDestination(objectDestination);
	delete iniFile;
}

QsLogTest::~QsLogTest()
{
	QsLogging::Logger::destroyInstance();
}

0x5 把QsLog2.dll放在Release文件夹中,否则会运行失败

【QsLog库的编译和使用】_第7张图片

【QsLog库的编译和使用】_第8张图片

0x5.1 静态库调用环境配置

VC++目录→包含目录:告诉编译器去这个地方找头文件

链接器→常规→附加库目录:告诉编译器去这个地方找lib文件

输入→附加依赖项:告诉编译器lib库文件的名字

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(#,QT,c++,qt5)