/// <summary> /// This is a shortcut to log the exception message to the Ximura Logging provider. /// This may be overriden in derived classes to provide a more detailed breakdown. /// </summary> /// <param name="provider">The Ximura logging provider to log to.</param> /// <returns>A boolean value. True indicated that the message was successfully logged.</returns> public virtual bool LogException(IXimuraLogging provider) { if (provider == null) return false; try { provider.WriteLine(this.Message); } catch { return false; } return true; }
/// <summary> /// This method removes a logger from the logging collection. /// </summary> /// <param name="logger">The logger to remove.</param> public static void LoggerRemove(IXimuraLogging logger) { lock (syncTrace) { if (!categoryLogger.Contains(logger)) return; categoryLogger.Remove(logger); if (categoryLogger.Count == 0) defaultLogger = NullLoggerAgent.NoLog(); else if (defaultLogger == logger) defaultLogger = categoryLogger[0]; //Safety check if (defaultLogger == null) defaultLogger = NullLoggerAgent.NoLog(); } }
/// <summary> /// This method adds a logger to the logging collection. /// </summary> /// <param name="logger">The logger to add.</param> public static void LoggerAdd(IXimuraLogging logger) { lock (syncTrace) { if (!categoryLogger.Contains(logger)) { categoryLogger.Add(logger); } if (defaultLogger == NullLoggerAgent.NoLog()) defaultLogger = logger; } }
private static void WriteItem(IXimuraLogging logger, QueueItem item) { IXimuraLoggingExtended exLog = logger as IXimuraLoggingExtended; if (item.writeline) if (exLog!=null) { if (item.logAsString) exLog.WriteLine(item.message as string,item.category,item.type); else exLog.WriteLine(item.message.ToString(),item.category,item.type); } else { if (item.logAsString) logger.WriteLine(item.message,item.category); else logger.WriteLine(item.message.ToString(),item.category); } else { if (exLog!=null) { if (item.logAsString) exLog.Write(item.message as string,item.category,item.type); else exLog.Write(item.message.ToString(),item.category,item.type); } else { if (!item.logAsString) logger.Write(item.message,item.category); else logger.Write(item.message.ToString(),item.category); } } }