mirror of
				http://172.16.0.230/r/SIF/TowerOptoSifAndSpectral.git
				synced 2025-10-25 13:59:44 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //
 | |
| // Created by xin on 2021/8/17.
 | |
| //edit by zz.
 | |
| //fixed code page problem;added a new initialize function; --20211101
 | |
| #pragma once
 | |
| 
 | |
| #include <QFile>
 | |
| #include <QTextStream>
 | |
| #include <QDateTime>
 | |
| #include "qmutex.h"
 | |
| #include "QtMsgHandler"
 | |
| 
 | |
| namespace QT_LOG
 | |
| {
 | |
|     static int m_LogLevel = 1;
 | |
|     static QString m_LogFile = QString("%1.log").arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmss"));
 | |
|     QMutex m_LogMutex;
 | |
| 
 | |
|     void customMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
 | |
|     {
 | |
|         if (type < m_LogLevel)
 | |
|         {
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         QString log_info;
 | |
|         switch (type)
 | |
|         {
 | |
|             case QtDebugMsg:
 | |
|                 log_info = QString("%1:%2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"),msg);
 | |
|                 break;
 | |
| 
 | |
|             case QtWarningMsg:
 | |
|                 log_info = QString("%1[Warning]:%2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"),msg);
 | |
|                 break;
 | |
| 
 | |
|             case QtCriticalMsg:
 | |
|                 log_info = QString("%1[Critical]:%2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"),msg);
 | |
|                 break;
 | |
| 
 | |
|             case QtFatalMsg:
 | |
|                 log_info = QString("%1[Fatal]:%2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"),msg);
 | |
|                 abort();
 | |
|         }
 | |
| 
 | |
|         m_LogMutex.lock();
 | |
| 
 | |
|         QFile outFile(m_LogFile);
 | |
|         outFile.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text);
 | |
|         QTextStream ts(&outFile);
 | |
|         ts << log_info << endl;
 | |
|         outFile.close();
 | |
| 
 | |
|         m_LogMutex.unlock();
 | |
|     }
 | |
|     void logInit(QString logFile = "",int logLevel = 0)
 | |
|     {
 | |
| 
 | |
| #ifndef DEBUG  
 | |
|         if ((logLevel < 0) || (logLevel > 3))
 | |
|         {
 | |
|             m_LogLevel = 1;
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|             m_LogLevel = logLevel;
 | |
|         }
 | |
| 
 | |
|         if (!logFile.isEmpty())
 | |
|         {
 | |
|             m_LogFile = logFile+"/"+m_LogFile;
 | |
|         }
 | |
| 
 | |
|         qInstallMessageHandler(customMessageHandler);
 | |
|         //qInstallMsgHandler(customMessageHandler);
 | |
| #endif
 | |
|     }
 | |
| 
 | |
| 	//added by IRIS_ZZ initialize from main 
 | |
| 	void ZZ_InitLogger(QString qstrDir)
 | |
| 	{
 | |
| 		QDir qdLogFolder;
 | |
| 		qdLogFolder.mkdir(qstrDir);
 | |
| 		qDebug() << QT_LOG::m_LogFile;
 | |
| 		QT_LOG::logInit(qstrDir);
 | |
| 	}
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 |