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); } }
private void saveLogPosition() { if (m_nCirclePos < 0) { return; } if (m_nCirclePos > (int)getLogConf().getMaxLogFileSize()) { return; } String strPos = m_nCirclePos.ToString(); for (int i = strPos.length(); i < 10; i++) { strPos += ' '; } m_pPosFile.movePosToStart(); m_pPosFile.writeString(strPos); m_pPosFile.flush(); }