Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }