LAPTOP-SNT8I5JK\Boounion
2025-09-12 c62dbec7328a8b44e6ec61758e7b8463f2e502dd
SourceCode/Bond/SGMeasurement/Logger.cpp
@@ -3,8 +3,8 @@
CLogger& CLogger::Instance()
{
    static CLogger instance;
    return instance;
   static CLogger instance;
   return instance;
}
CLogger::CLogger()
@@ -14,66 +14,66 @@
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");
   CTime now = CTime::GetCurrentTime();
   CString strLogDir = _T("Log");
    if (!PathFileExists(strLogDir)) {
        CreateDirectory(strLogDir, NULL);
    }
   if (!PathFileExists(strLogDir)) {
      CreateDirectory(strLogDir, NULL);
   }
    CString strNewPath;
    strNewPath.Format(_T("%s\\SG_%04d%02d%02d.log"), strLogDir, now.GetYear(), now.GetMonth(), now.GetDay());
   CString strNewPath;
   strNewPath.Format(_T("%s\\SG_%04d%02d%02d.log"), strLogDir, now.GetYear(), now.GetMonth(), now.GetDay());
    if (m_strCurrentLogPath.CompareNoCase(strNewPath) != 0 || m_logFile.m_pStream == nullptr) {
        if (m_logFile.m_pStream) {
            m_logFile.Flush();
            m_logFile.Close();
        }
   if (m_strCurrentLogPath.CompareNoCase(strNewPath) != 0 || m_logFile.m_pStream == nullptr) {
      if (m_logFile.m_pStream) {
         m_logFile.Flush();
         m_logFile.Close();
      }
        if (m_logFile.Open(strNewPath,
            CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite | CFile::typeBinary)) {
      if (m_logFile.Open(strNewPath,
         CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite | CFile::typeBinary)) {
            if (m_logFile.GetLength() == 0) {
                WCHAR bom = 0xFEFF;
                m_logFile.Write(&bom, sizeof(WCHAR));
            }
         if (m_logFile.GetLength() == 0) {
            WCHAR bom = 0xFEFF;
            m_logFile.Write(&bom, sizeof(WCHAR));
         }
            m_logFile.SeekToEnd();
            m_strCurrentLogPath = strNewPath;
        }
    }
         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();
   }
}