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 ); } }
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(); } }