From 829fe6c6bc33d53fda9c31fd45a37e1df87befff Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 30 一月 2026 11:16:24 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/SGMeasurement/Logger.cpp | 92 +++++++++++++++++++++++++---------------------
1 files changed, 50 insertions(+), 42 deletions(-)
diff --git a/SourceCode/Bond/SGMeasurement/Logger.cpp b/SourceCode/Bond/SGMeasurement/Logger.cpp
index 1908277..e89b795 100644
--- a/SourceCode/Bond/SGMeasurement/Logger.cpp
+++ b/SourceCode/Bond/SGMeasurement/Logger.cpp
@@ -1,10 +1,10 @@
-#include "pch.h"
+锘�#include "pch.h"
#include "Logger.h"
CLogger& CLogger::Instance()
{
- static CLogger instance;
- return instance;
+ static CLogger instance;
+ return instance;
}
CLogger::CLogger()
@@ -14,66 +14,74 @@
CLogger::~CLogger()
{
- CloseLogFile();
+ CloseLogFile();
}
void CLogger::OpenLogFile()
{
- CSingleLock lock(&m_csLogLock, TRUE);
+ CSingleLock lock(&m_csLogLock, TRUE);
- CTime now = CTime::GetCurrentTime();
- CString strLogDir = _T("Log");
+ TCHAR szPath[MAX_PATH] = { 0 };
+ GetModuleFileName(NULL, szPath, MAX_PATH);
- if (!PathFileExists(strLogDir)) {
- CreateDirectory(strLogDir, NULL);
- }
+ CString strPath = szPath;
+ int pos = strPath.ReverseFind('\\');
+ if (pos != -1) {
+ strPath = strPath.Left(pos + 1);
+ }
- CString strNewPath;
- strNewPath.Format(_T("%s\\SG_%04d%02d%02d.log"), strLogDir, now.GetYear(), now.GetMonth(), now.GetDay());
+ CTime now = CTime::GetCurrentTime();
+ CString strLogDir = strPath + _T("Log");
- if (m_strCurrentLogPath.CompareNoCase(strNewPath) != 0 || m_logFile.m_pStream == nullptr) {
- if (m_logFile.m_pStream) {
- m_logFile.Flush();
- m_logFile.Close();
- }
+ if (!PathFileExists(strLogDir)) {
+ CreateDirectory(strLogDir, NULL);
+ }
- if (m_logFile.Open(strNewPath,
- CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite | CFile::typeBinary)) {
+ CString strNewPath;
+ strNewPath.Format(_T("%s\\SG_%04d%02d%02d.log"), strLogDir, now.GetYear(), now.GetMonth(), now.GetDay());
- if (m_logFile.GetLength() == 0) {
- WCHAR bom = 0xFEFF;
- m_logFile.Write(&bom, sizeof(WCHAR));
- }
+ if (m_strCurrentLogPath.CompareNoCase(strNewPath) != 0 || m_logFile.m_pStream == nullptr) {
+ if (m_logFile.m_pStream) {
+ m_logFile.Flush();
+ m_logFile.Close();
+ }
- m_logFile.SeekToEnd();
- m_strCurrentLogPath = strNewPath;
- }
- }
+ if (m_logFile.Open(strNewPath, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite | CFile::typeBinary | CFile::shareDenyWrite)) {
+
+ if (m_logFile.GetLength() == 0) {
+ WCHAR bom = 0xFEFF;
+ m_logFile.Write(&bom, sizeof(WCHAR));
+ }
+
+ m_logFile.SeekToEnd();
+ m_strCurrentLogPath = strNewPath;
+ }
+ }
}
void CLogger::WriteLine(CString str)
{
- CSingleLock lock(&m_csLogLock, TRUE);
+ CSingleLock lock(&m_csLogLock, TRUE);
- OpenLogFile();
+ OpenLogFile();
- if (m_logFile.m_pStream) {
- CTime now = CTime::GetCurrentTime();
- CString strTime;
- strTime.Format(_T("[%02d:%02d:%02d]"), now.GetHour(), now.GetMinute(), now.GetSecond());
+ if (m_logFile.m_pStream) {
+ CTime now = CTime::GetCurrentTime();
+ CString strTime;
+ strTime.Format(_T("[%02d:%02d:%02d]"), now.GetHour(), now.GetMinute(), now.GetSecond());
- CString strLine = strTime + str + _T("\r\n");
- m_logFile.Write((LPCTSTR)strLine, strLine.GetLength() * sizeof(WCHAR));
- }
+ CString strLine = strTime + str + _T("\r\n");
+ m_logFile.Write((LPCTSTR)strLine, strLine.GetLength() * sizeof(WCHAR));
+ }
}
void CLogger::CloseLogFile()
{
- CSingleLock lock(&m_csLogLock, TRUE);
+ CSingleLock lock(&m_csLogLock, TRUE);
- if (m_logFile.m_pStream) {
- m_logFile.Flush();
- m_logFile.Close();
- m_strCurrentLogPath.Empty();
- }
+ if (m_logFile.m_pStream) {
+ m_logFile.Flush();
+ m_logFile.Close();
+ m_strCurrentLogPath.Empty();
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3