private void loadLogPosition() { if (m_pPosFile == null) { m_pPosFile = new CRhoFile(); } if (!m_pPosFile.isOpened()) { String strPosPath = getLogConf().getLogFilePath() + "_pos"; m_pPosFile.open(strPosPath, CRhoFile.EOpenModes.OpenForReadWrite); } if (!m_pPosFile.isOpened()) { return; } m_pPosFile.movePosToStart(); String strPos = m_pPosFile.readString(); if (strPos.length() == 0) { return; } m_nCirclePos = int.Parse(strPos); if (m_nCirclePos < 0 || m_nCirclePos > (int)m_nFileLogSize) { m_nCirclePos = -1; } if (m_nCirclePos >= 0) { m_pFile.setPosTo(m_nCirclePos); } }
public void writeLogMessage(String strMsg) { try{ int len = strMsg.length(); if (m_pFile == null) { m_pFile = new CRhoFile(); } if (!m_pFile.isOpened()) { m_pFile.open(getLogConf().getLogFilePath(), CRhoFile.EOpenModes.OpenForAppend); m_nFileLogSize = (int)m_pFile.size(); loadLogPosition(); } if (getLogConf().getMaxLogFileSize() > 0) { if ((m_nCirclePos >= 0 && m_nCirclePos + len > getLogConf().getMaxLogFileSize()) || (m_nCirclePos < 0 && m_nFileLogSize + len > getLogConf().getMaxLogFileSize())) { m_pFile.movePosToStart(); m_nFileLogSize = 0; m_nCirclePos = 0; } } //int nWritten = m_pFile.writeString(strMsg); m_pFile.writeString(strMsg); m_pFile.flush(); if (m_nCirclePos >= 0) { m_nCirclePos += len; } else { m_nFileLogSize += len; } saveLogPosition(); }catch (Exception exc) { log(exc.Message); } }