public static void AddSniffer(string url, string[] loggerPrefix, TracingLevel level, string from, string to) { RemoveSniffer(url); if (_sniffers.Count >= TracingSniffer.MaxSniffer) { throw new NotSupportedException("Over Max Sniffer"); } TracingSniffer newSniffer = new TracingSniffer(url, level, from, to); _sniffers.Add(newSniffer); lock (_syncRoot) { foreach (var k in _loggers) { foreach (string pre in loggerPrefix) { if (pre == "*" || k.Value.LoggerName.StartsWith(pre)) { k.Value.AddSniffer(newSniffer); } } } } }
private static void Trace(TracingLevel tracingLevel, string message) { if (tracingLevel >= CurrentTracingLevel) { TraceImpl(string.Format("{0}: {1}", tracingLevel.ToString(), message)); } }
/// <summary> /// 处理当前日志的通知 /// <para>* 只有在满足当前日志等级后,才会调用此方法</para> /// </summary> /// <param name="level">日志级别</param> /// <param name="ex">异常对象</param> /// <param name="message">错误消息</param> /// <param name="loggerType">记录器类型名称</param> public void Handle(TracingLevel level, System.Exception ex, string message, string loggerType) { if (!SystemWorker.IsInitialized) { return; } if (level == TracingLevel.Info) { return; } //BusinessMessageTransaction lgsTransaction = SystemWorker.CreateOnewayTransaction("LGS"); //if (lgsTransaction == null || lgsTransaction is FailMessageTransaction) //{ // _tracing.LogFileOnly(TracingLevel.Error, "#Cannot connect to remote {0} service currently.", "LGS"); // return; //} //string detail = string.Empty; //while (ex != null && ex.InnerException != null) ex = ex.InnerException; //if (ex != null) detail = "#" + ex.Message; //CreateLogRequestMessage requestMessage = new CreateLogRequestMessage //{ // ProcessLevel = Convert.ToByte((int)level), // ClassName = loggerType, // ProcessInfo = message, // ServiceName = SystemWorker.Role, // ProcessDetail = detail, // CreateTime = DateTime.Now, // ProcessTrace = ex.StackTrace //}; //lgsTransaction.SendRequest(requestMessage); }
private static void OnTracingLevelChanged(TracingLevel newTracingLevel) { if (TracingLevelChanged != null) { TracingLevelChanged(newTracingLevel); } }
public static void LogMessage(TracingLevel Level, string Message) { switch (Level) { case TracingLevel.DEBUG: _log.Debug(Message); break; case TracingLevel.INFO: _log.Info(Message); break; case TracingLevel.WARN: _log.Warn(Message); break; case TracingLevel.ERROR: _log.Error(Message); break; case TracingLevel.FATAL: _log.Fatal(Message); break; } }
protected override void TraceFileOnly(TracingLevel level, string format, params object[] args) { try { if (level >= TracingSettings.Level) { string message = string.Empty; try { message = args.Length == 0 ? format : string.Format(format ?? string.Empty, args); TracingManager.AddTraceItem(new TraceItem(_logger, level, null, message)); } catch (System.Exception ex) { if (level < TracingLevel.Warn) { level = TracingLevel.Warn; } message = string.Concat("tracing formatting error: [", args.Length, "] ", format ?? string.Empty); TracingManager.AddTraceItem(new TraceItem(_logger, level, ex, message)); } } } catch { // mute everything... } }
private static void ReloadConfiguration() { _level = _configSection.Level; List <IAppender> appenders = new List <IAppender>(); foreach (TracingConfigAppenderItem item in _configSection.Appenders.Values) { switch (item.Type) { case AppenderType.Console: appenders.Add(new TracingConsoleAppender(item.Enabled)); break; case AppenderType.Database: appenders.Add(new TracingDatabaseAppender(item.Path, item.Enabled)); break; case AppenderType.Text: var a = new TracingTextAppender(item.Path, item.Enabled); appenders.Add(a); _backupAppender = a; break; } } _appenders = appenders; }
/// <summary> /// 记录项 /// </summary> public TraceItem(string logger, TracingLevel level, Exception error, string message) { Timestamp = DateTime.UtcNow; Logger = logger; Level = level; Error = error; Message = message; }
private static void Trace(TracingLevel tracingLevel, string format, params object[] args) { if (tracingLevel >= CurrentTracingLevel) { string message = string.Format(format, args); TraceImpl(string.Format("{0}: {1}", tracingLevel.ToString(), message)); } }
private void WriteLog(int sniffMask, TracingLevel level, Exception ex, string from, string to, string message) { // NextVersion //int repeat; //if (TracingManager.AntiRepeat && !sniffed) { // if (AntiRepeater.IsRepeated(out repeat)) { // return; // } //} else { // repeat = 1; //} //if (repeat > 1) { // message = string.Format("!!!Repeat {0} times in last 5 seconds\r\n{1}", repeat, message); //} TracingEvent evt = new TracingEvent(); evt.Level = level; evt.LoggerName = _loggerName; evt.Time = DateTime.Now; evt.Message = message; evt.ProcessInfo = ServiceEnvironment.ProcessInfo; evt.ServiceName = ServiceEnvironment.ServiceName; evt.ComputerName = ServiceEnvironment.ComputerName; evt.ThreadInfo = TracingHelper.FormatThreadInfo(Thread.CurrentThread); evt.From = from ?? ""; evt.To = to ?? ""; evt.Error = ex == null ? "" : ex.ToString(); evt.Repeat = 1; // repeat; if (sniffMask > 0) { for (int i = 0; i < TracingSniffer.MaxSniffer; i++) { if ((sniffMask & (1 << i)) > 0) { TracingSniffer sniffer = _sniffers[i]; if (sniffer != null) { sniffer.Enqueue(evt); } } } } if (evt.Level == TracingLevel.Error) { _observerItem.LastError = evt.Message; if (ex != null) { _observerItem.LastException = evt.Error; } } TracingManager.Enqueue(evt); }
static TracingManager() { _queueTracing = new LazyQueue<TracingEvent>("TracingManager.QueueTracing", 32, 50, TracingDequeueAction); _queueLog = new LazyQueue<SystemLogEvent>("TracingManager.QueueLog", 32, 50, SystemLogDequeueAction); _configSection = IICConfigSection.CreateDefault<TracingConfigSection>(); _level = TracingLevel.Off; ReloadConfiguration(); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledException); Trace.Listeners.Add(new DebugTraceListener()); ObserverManager.RegisterObserver("Tracing", ObserveProc, ClearObserver); }
public void LogException(TracingLevel level, Exception exception) { switch (level) { case TracingLevel.ERROR: Log.Error(exception); break; case TracingLevel.FATAL: Log.Fatal(exception); break; } }
public TracingSniffer(string url, TracingLevel level, string from, string to) { _url = url; _level = level; _from = from; _to = to; _enabled = true; _queueTracing = new LazyQueue <TracingEvent>("TracingSniffer.Tracing", 32, 50, DequeueActionTracing); _queueSystemLog = new LazyQueue <SystemLogEvent>("TracingSniffer.SystemLog", 32, 50, DequeueActionSystemLog); _proxy = RpcProxyFactory.GetProxy <ITracingSniffer>(_url); // _proxy.ShutUp = true; }
static TracingManager() { _queueTracing = new LazyQueue <TracingEvent>("TracingManager.QueueTracing", 32, 50, TracingDequeueAction); _queueLog = new LazyQueue <SystemLogEvent>("TracingManager.QueueLog", 32, 50, SystemLogDequeueAction); _configSection = IICConfigSection.CreateDefault <TracingConfigSection>(); _level = TracingLevel.Off; ReloadConfiguration(); //AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledException); //Trace.Listeners.Add(new DebugTraceListener()); ObserverManager.RegisterObserver("Tracing", ObserveProc, ClearObserver); }
public static void Trace(object sender, TracingLevel level, string message, params object[] args) { if (args != null && args.Length > 0) { message = string.Format(message, args); } Trace(new TraceMessage() { Level = level, Sender = sender, Message = message, }); }
/// <summary> /// The constructor starts the measurement. This is to be used in a using block. /// </summary> /// <param name="message">Tracing Message.</param> /// <param name="category">Tracing Category.</param> /// <param name="tracingLevel">Der Level der Nachricht.</param> public TraceCodeTime(string message, string category, TracingLevel tracingLevel = TracingLevel.Info) { _message = message; _category = category; _tracingLevel = tracingLevel; string msg = string.Format("{0} - {1} - {2}", message, category, tracingLevel.ToString()); #if DEBUG Trace.TraceInformation(msg); #endif _stopwatch.Start(); }
protected override void Trace(TracingLevel level, Exception error, string format, object[] args, ConsoleColor color = ConsoleColor.Gray) { try { string message = ((args == null || args.Length == 0) ? format : string.Format(format ?? string.Empty, args)); #region Output message to Console. switch (level) { case TracingLevel.Debug: Console.ForegroundColor = color; Console.WriteLine(message); Console.ForegroundColor = ConsoleColor.Gray; break; case TracingLevel.Warn: Console.ForegroundColor = ConsoleColor.DarkYellow; Console.WriteLine(message); Console.ForegroundColor = ConsoleColor.Gray; break; case TracingLevel.Error: Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine(message); Console.ForegroundColor = ConsoleColor.Gray; break; case TracingLevel.Crtitical: Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(message); Console.ForegroundColor = ConsoleColor.Gray; break; } #endregion if (level >= TracingSettings.Level) { TracingManager.AddTraceItem(new TraceItem(_logger, level, error, message)); if (TracingManager.NotificationHandler != null) { TracingManager.NotificationHandler.Handle(level, error, message, _logger); } } } catch { // mute everything... } }
public static void AddSniffer(string url, string[] loggerPrefix, TracingLevel level, string from, string to) { RemoveSniffer(url); TracingSniffer newSniffer = new TracingSniffer(url, level, from, to); _sniffers.Add(newSniffer); lock (_syncRoot) { foreach (var k in _loggers) { foreach (string pre in loggerPrefix) { if (pre == "*" || k.Value.LoggerName.StartsWith(pre)) { k.Value.AddSniffer(newSniffer); } } } } }
public void LogMessage(TracingLevel level, string message) { switch (level) { case TracingLevel.DEBUG: Log.Debug(message); break; case TracingLevel.INFO: Log.Info(message); break; case TracingLevel.WARN: Log.Warn(message); break; } }
public void SetTracingLevelTest() { //Register for event notification TracingLevel eventLevel = TracingLevel.Error; bool eventFired = false; TraceQueue.TracingLevelChanged += (newLevel) => { eventFired = true; eventLevel = newLevel; }; //Change our way through tracing levels foreach (TracingLevel level in Enum.GetValues(typeof(TracingLevel))) { eventFired = false; TraceQueue.TracingLevel = level; Assert.AreEqual(level, TraceQueue.TracingLevel, "Level was not set correctly"); Assert.IsTrue(eventFired, "TracingLevelChanged event did not fire"); Assert.AreEqual(level, eventLevel, "TracingLevelChanged event fired, but with incorrect value"); } }
/// <summary> /// Maps <see cref="TracingLevel"/> to <see cref="LogLevel"/>. /// Default is <see cref="LogLevel.None"/> /// </summary> /// <param name="traceLevel"></param> /// <returns></returns> private LogLevel mapToLogLevel(TracingLevel traceLevel) { switch (traceLevel) { case TracingLevel.Level1: return(LogLevel.Critical); case TracingLevel.Level2: return(LogLevel.Error); case TracingLevel.Level3: return(LogLevel.Information); case TracingLevel.Level4: return(LogLevel.Trace); case TracingLevel.TraceOff: return(LogLevel.None); default: return(LogLevel.None); } }
private bool CanLog(TracingLevel level, string from, string to, out int sniffMask) { sniffMask = 0; if (_sniffers != null) { try { for (int i = 0; i < TracingSniffer.MaxSniffer; i++) { TracingSniffer sniffer = _sniffers[i]; if (sniffer != null) { if (sniffer.CanSniff(level, from, to)) { sniffMask |= (1 << i); } } } } catch (Exception ex) { SystemLog.Unexcepted(ex); } } return((level >= TracingManager.Level) || (sniffMask > 0)); }
private static bool CanLog(TracingLevel level, out bool sniffered) { sniffered = false; return(level >= Level); }
private bool CanLog(TracingLevel level, out int sniffMask) { return(CanLog(level, "", "", out sniffMask)); }
public void TraceMessage(TracingLevel traceLevel, int eventId, string msg, params object[] myParams) { trace(TraceEventType.Information, LogLevel.Information, eventId, null, msg, myParams); }
public void TraceError(TracingLevel traceLevel, int eventId, Exception err, string msg, params object[] myParams) { trace(TraceEventType.Error, LogLevel.Error, eventId, err, msg, myParams); }
public void TraceWarning(TracingLevel traceLevel, int eventId, string msg, params object[] myParams) { trace(TraceEventType.Warning, LogLevel.Warning, eventId, null, msg, myParams); }
public static void Trace(TracingLevel level, string message, params object[] args) { Trace(null, level, message, args); }
private bool CanLog(TracingLevel level, out int sniffMask) { return CanLog(level, "", "", out sniffMask); }
private bool CanLog(TracingLevel level, string from, string to, out int sniffMask) { sniffMask = 0; if (_sniffers != null) { try { for (int i = 0; i < TracingSniffer.MaxSniffer; i++) { TracingSniffer sniffer = _sniffers[i]; if (sniffer != null) { if (sniffer.CanSniff(level, from, to)) sniffMask |= (1 << i); } } } catch (Exception ex) { SystemLog.Unexcepted(ex); } } return (level >= TracingManager.Level) || (sniffMask > 0); }
public override void SetDefaultValue() { Level = TracingLevel.Off; Appenders = new IICConfigItemCollection<AppenderType, TracingConfigAppenderItem>(); }
private static void ReloadConfiguration() { _level = _configSection.Level; List<IAppender> appenders = new List<IAppender>(); foreach (TracingConfigAppenderItem item in _configSection.Appenders.Values) { switch (item.Type) { case AppenderType.Console: appenders.Add(new TracingConsoleAppender(item.Enabled)); break; case AppenderType.Database: appenders.Add(new TracingDatabaseAppender(item.Path, item.Enabled)); break; case AppenderType.Text: appenders.Add(new TracingTextAppender(item.Path, item.Enabled)); break; } } _appenders = appenders; }
public bool CanSniff(TracingLevel level, string from, string to) { return(CanSniff(level) && string.IsNullOrEmpty(_from) ? true : (from == _from) && string.IsNullOrEmpty(_to) ? true : (to == _to)); }
public static void LogMessage(TracingLevel Level, Exception exception) { LogMessage(Level, exception.Message); }
private void WriteLog(int sniffMask, TracingLevel level, Exception ex, string from, string to, string message) { // NextVersion //int repeat; //if (TracingManager.AntiRepeat && !sniffed) { // if (AntiRepeater.IsRepeated(out repeat)) { // return; // } //} else { // repeat = 1; //} //if (repeat > 1) { // message = string.Format("!!!Repeat {0} times in last 5 seconds\r\n{1}", repeat, message); //} TracingEvent evt = new TracingEvent(); evt.Level = level; evt.LoggerName = _loggerName; evt.Time = DateTime.Now; evt.Message = message; evt.ProcessInfo = ServiceEnviornment.ProcessInfo; evt.ServiceName = ServiceEnviornment.ServiceName; evt.ComputerName = ServiceEnviornment.ComputerName; evt.ThreadInfo = TracingHelper.FormatThreadInfo(Thread.CurrentThread); evt.From = from; evt.To = to; evt.Error = ex == null ? "" : ex.ToString(); evt.Repeat = 1; // repeat; if (sniffMask > 0) { for (int i = 0; i < TracingSniffer.MaxSniffer; i++) { if ((sniffMask & (1 << i)) > 0) { TracingSniffer sniffer = _sniffers[i]; if (sniffer != null) sniffer.Enqueue(evt); } } } if (evt.Level == TracingLevel.Error) { _observerItem.LastError = evt.Message; if (ex != null) _observerItem.LastException = evt.Error; } TracingManager.Enqueue(evt); }
private static void OnTracingLevelChanged(TracingLevel newTracingLevel) { if (TracingLevelChanged != null) TracingLevelChanged(newTracingLevel); }
public override void SetDefaultValue() { Level = TracingLevel.Off; Appenders = new IICConfigItemCollection <AppenderType, TracingConfigAppenderItem>(); }
private static bool CanLog(TracingLevel level, out bool sniffered) { sniffered = false; return level >= Level; }