/// <summary> /// 默认初始化 /// </summary> /// <param name="minLogLevel">最小日志等级,如果为null,则从配置里取</param> public static void DefaultInit(LogLevel minLogLevel = null) { if (isExecDefaultInit) { return; } ExceptionlessClient.Default.Configuration.ApiKey = ApiKey; ExceptionlessClient.Default.Configuration.ServerUrl = ServerUrl; if (minLogLevel == null) { var logLevel = LogLevelHelper.Parse(RecordLevel); switch (logLevel) { case LogLevelEnum.TRACE: minLogLevel = LogLevel.Trace; break; case LogLevelEnum.DEBUG: minLogLevel = LogLevel.Debug; break; case LogLevelEnum.INFO: minLogLevel = LogLevel.Info; break; case LogLevelEnum.WRAN: minLogLevel = LogLevel.Warn; break; case LogLevelEnum.ERROR: minLogLevel = LogLevel.Error; break; case LogLevelEnum.FATAL: minLogLevel = LogLevel.Fatal; break; default: minLogLevel = LogLevel.Off; break; } } ExceptionlessClient.Default.Configuration.SetDefaultMinLogLevel(minLogLevel); lock (syncIsExecDefaultInit) { isExecDefaultInit = true; } }
/// <summary> /// 将消息与异常写入到存储设备里 /// </summary> /// <param name="level">级别</param> /// <param name="msg">消息</param> /// <param name="ex">异常</param> /// <param name="source">来源</param> /// <param name="tags">标签</param> protected override void WriteStorage(string level, string msg, Exception ex = null, string source = null, params string[] tags) { if (string.IsNullOrWhiteSpace(source) && ex != null) { source = ex.Source; } var logLevel = LogLevelHelper.Parse(level); var exLevel = LogLevel.Off; switch (logLevel) { case LogLevelEnum.TRACE: exLevel = LogLevel.Trace; break; case LogLevelEnum.DEBUG: exLevel = LogLevel.Debug; break; case LogLevelEnum.INFO: exLevel = LogLevel.Info; break; case LogLevelEnum.WRAN: exLevel = LogLevel.Warn; break; case LogLevelEnum.ERROR: exLevel = LogLevel.Error; break; case LogLevelEnum.FATAL: exLevel = LogLevel.Fatal; break; } if (ex != null) { msg += $".异常:msg:{ex.Message},ex:{ex.StackTrace}"; } var builder = ExceptionlessClient.Default.CreateLog(source, msg, exLevel); builder.AddTags(AppendLocalIdTags(tags)); builder.Submit(); }
/// <summary> /// 将消息与异常写入到存储设备里 /// </summary> /// <param name="level">级别</param> /// <param name="msg">消息</param> /// <param name="ex">异常</param> /// <param name="source">来源</param> /// <param name="tags">标签</param> protected override void WriteStorage(string level, string msg, Exception ex = null, string source = null, params string[] tags) { if (string.IsNullOrWhiteSpace(source) && ex != null) { source = ex.Source; } var logger = string.IsNullOrWhiteSpace(source) || name.Equals(source) ? nlog : NLog.LogManager.GetLogger(source); msg += " 标签:" + string.Join(",", AppendLocalIdTags(tags)); var levelEnum = LogLevelHelper.Parse(level); switch (levelEnum) { case LogLevelEnum.TRACE: logger.Trace(ex, msg); break; case LogLevelEnum.DEBUG: logger.Debug(ex, msg); break; case LogLevelEnum.INFO: logger.Info(ex, msg); break; case LogLevelEnum.WRAN: logger.Warn(ex, msg); break; case LogLevelEnum.ERROR: logger.Error(ex, msg); break; case LogLevelEnum.FATAL: logger.Fatal(ex, msg); break; } }
/// <summary> /// 将消息与异常写入到存储设备里 /// </summary> /// <param name="level">级别</param> /// <param name="msg">消息</param> /// <param name="ex">异常</param> /// <param name="source">来源</param> /// <param name="tags">标签</param> protected override void WriteStorage(string level, string msg, Exception ex = null, string source = null, params string[] tags) { var logger = string.IsNullOrWhiteSpace(source) || name.Equals(source) ? nlog : NLog.LogManager.GetLogger(source); if (!tags.IsNullOrLength0()) { msg += " 标签:" + JsonUtil.SerializeIgnoreNull(tags); } var levelEnum = LogLevelHelper.Parse(level); switch (levelEnum) { case LogLevelEnum.TRACE: logger.Trace(ex, msg); break; case LogLevelEnum.DEBUG: logger.Debug(ex, msg); break; case LogLevelEnum.INFO: logger.Info(ex, msg); break; case LogLevelEnum.WRAN: logger.Warn(ex, msg); break; case LogLevelEnum.ERROR: logger.Error(ex, msg); break; case LogLevelEnum.FATAL: logger.Fatal(ex, msg); break; } }
/// <summary> /// 将消息与异常写入到存储设备里 /// </summary> /// <param name="level">级别</param> /// <param name="msg">消息</param> /// <param name="eventId">事件ID</param> /// <param name="ex">异常</param> /// <param name="source">来源</param> /// <param name="tags">标签</param> protected override void WriteStorage(string level, string msg, string eventId, Exception ex = null, string source = null, params string[] tags) { if (string.IsNullOrWhiteSpace(source) && ex != null) { source = ex.Source; } var logLevel = LogLevelHelper.Parse(level); LogLevel exLevel = null; switch (logLevel) { case LogLevelEnum.TRACE: exLevel = LogLevel.Trace; break; case LogLevelEnum.DEBUG: exLevel = LogLevel.Debug; break; case LogLevelEnum.INFO: exLevel = LogLevel.Info; break; case LogLevelEnum.WRAN: exLevel = LogLevel.Warn; break; case LogLevelEnum.ERROR: exLevel = LogLevel.Error; break; case LogLevelEnum.FATAL: exLevel = LogLevel.Fatal; break; default: return; } EventBuilder builder = null; if (ex == null) { builder = ExceptionlessClient.Default.CreateLog(source, msg, exLevel); } else { builder = ExceptionlessClient.Default.CreateException(ex); if (!string.IsNullOrWhiteSpace(source)) { builder.SetSource(source); } if (!string.IsNullOrWhiteSpace(msg)) { builder.SetMessage(msg); } } builder.AddTags(AppendLocalIdTags(eventId, tags)); builder.Submit(); }