Пример #1
0
        public void WriteLogMsg(LogMsg lm)
        {
            LogPrint("AdaptiveLogs::WriteLogMsg(LogMsg* lm)");
            using(EnEx ee = new EnEx("AdaptiveLogs::WriteLogMsg(LogMsg* lm)")){

                try {
                    m_log_stage.Add( lm );
                    m_file.writeMsg( m_log_stage );

                } catch (Exception e){
                    Console.Write("Caught exeption during write:\n{0}\n{1}\n", e.Message, e.StackTrace );
                    // If anything goes wrong writing this message to the log file, simply close
                    // the log file and start a new one.
                    try {
                        m_file.createNewFile();
                        m_file.writeMsg( m_log_stage );
                    } catch(Exception e2){
                        Console.Write("Badnews! 2nd exception caught trying to log:\n{0}\n{1}\n", e2.Message, e2.StackTrace );
                        try {
                            m_file.close();
                            m_file = new LogFile2( m_file_name, m_max_file_size);
                        } catch (Exception e3){
                            Console.Write("Panic! 3rd exception caught trying to log:\n{0}\n{1}\n", e3.Message, e3.StackTrace );
                            throw e3;
                        }
                    }
                }
                ClearStage();

                AddForwardMsg( lm );
            }
        }
Пример #2
0
        public void Setup()
        {
            LogPrint ("AdaptiveLogs::Setup()");
            using (EnEx ee = new EnEx ("AdaptiveLogs::Setup()")) {
                if(m_log_parms.Count < 7){ // bad
                    throw new Exception(
                        String.Format("Log Parms size should always be at least 7.  It is ({0})", m_log_parms.Count )
                    );
                }

                // Panic setup
                if(m_log_parms[0].onoff || m_log_parms[0].buffer_when_off){
                    Log.SetPanic(true);
                } else {
                    Log.SetPanic(false);
                }

                // Error setup
                if(m_log_parms[1].onoff || m_log_parms[1].buffer_when_off){
                    Log.SetError(true);
                } else {
                    Log.SetError(false);
                }

                // Warn setup
                if(m_log_parms[2].onoff || m_log_parms[2].buffer_when_off){
                    Log.SetWarn(true);
                } else {
                    Log.SetWarn(false);
                }

                // Info setup
                if(m_log_parms[3].onoff || m_log_parms[3].buffer_when_off){
                    Log.SetInfo(true);
                } else {
                    Log.SetInfo(false);
                }

                // Debug setup
                if(m_log_parms[4].onoff || m_log_parms[4].buffer_when_off){
                    Log.SetDebug(true);
                } else {
                    Log.SetDebug(false);
                }

                // Trace setup
                if(m_log_parms[5].onoff || m_log_parms[5].buffer_when_off){
                    Log.SetTrace(true);
                } else {
                    Log.SetTrace(false);
                }

                // SqlTrace setup
                if(m_log_parms[6].onoff || m_log_parms[6].buffer_when_off){
                    Log.SetSqlTrace(true);
                } else {
                    Log.SetSqlTrace(false);
                }

                // Other logs as added go here

                // Open up our log file:
                try {
                    m_file = new LogFile2( m_file_name, m_max_file_size );
                } catch (Exception e){
                    // Something bad happened while trying to open our log file.
                    m_file = null;
                    m_shutdown = true;
                    // Reset SLib::Log to non-lazy so messages don't go to the queue
                    Log.SetLazy(false);

                    Log.Panic("Exception raised opening log file: %s\n", e.Message );
                    return; // do nothing else
                }

                //m_max_id = m_file->getNewestMessageID();
            }
        }