} // CLogFilter /// <summary> /// Check if a message of the given level would actually be logged /// </summary> /// <param name="record">a message logging level</param> /// <returns>true if the given message level is currently being logged.</returns> bool Filter.IsLoggable(LogRecord record) { if (record.GetLevel() == Level.SEVERE || record.GetLevel() == Level.WARNING) { return(true); } // String loggerName = record.GetLoggerName(); if (loggerName != null) { // if (loggerName.toLowerCase().indexOf("focus") != -1) // return true; if (loggerName.StartsWith("System.")) { return(false); } } String className = record.sourceClassName; if (className != null) { if (className.StartsWith("System.")) { return(false); } } return(true); } // isLoggable
} // setFormat /// <summary> /// Get Class Method from Log Record /// </summary> /// <param name="record">record</param> /// <returns>class.method</returns> public static String GetClassMethod(LogRecord record) { StringBuilder sb = new StringBuilder(); String className = record.GetLoggerName(); if (className == null || className.IndexOf("default") != -1 || // anonymous logger className.IndexOf("global") != -1) // global logger { className = record.sourceClassName; } if (className != null) { int index = className.LastIndexOf('.'); if (index != -1) { sb.Append(className.Substring(index + 1)); } else { sb.Append(className); } } else { sb.Append(record.GetLoggerName()); } if (record.sourceMethodName != null) { sb.Append(".").Append(record.sourceMethodName); } String retValue = sb.ToString(); if (retValue.Equals("Trace.printStack")) { return(""); } return(retValue); } // getClassMethod
} // SetLevel /// <summary> /// Publish /// Logging.Handler#Publish() /// </summary> /// <param name="record"></param> public override void Publish(LogRecord record) { if (!IsLoggable(record) || m_logs == null) { return; } // Output lock (m_logs) { if (m_logs.Count >= LOG_SIZE) { m_logs.RemoveFirst(); } m_logs.AddLast(record); } // We have an error if (record.GetLevel() == Level.SEVERE) { if (m_errors.Count >= ERROR_SIZE) { m_errors.RemoveFirst(); m_history.RemoveFirst(); } // Add Error m_errors.AddLast(record); //record.sourceClassName; // forces Class Name eval // Create History List <LogRecord> history = new List <LogRecord>(); try { foreach (LogRecord logr in m_logs) { LogRecord rec = (LogRecord)logr; if (rec.GetLevel() == Level.SEVERE) { if (history.Count == 0) { history.Add(rec); } else { break; // don't incluse previous error } } else { history.Add(rec); if (history.Count > 10) { break; // no more then 10 history records } } } } catch { } LogRecord[] historyArray = new LogRecord[history.Count]; int no = 0; for (int i = history.Count - 1; i >= 0; i--) { historyArray[no++] = (LogRecord)history[i]; } m_history.AddLast(historyArray); // Issue Reporting if (m_issueError) { String loggerName = record.GetLoggerName(); // class name // String className = record.getSourceClassName(); // physical class String methodName = record.sourceMethodName; // if (!methodName.Equals("SaveError") && !methodName.Equals("Get_Value") && !methodName.Equals("DataSave") && loggerName.IndexOf("Issue") == -1 && loggerName.IndexOf("CConnection") == -1 // && VAdvantage.DataBase.DB.IsConnected() ) { m_issueError = false; //MIssue.create(record); m_issueError = true; } } } }