/// <summary> /// Log /// </summary> /// <param name="logTrack"></param> /// <param name="level"></param> /// <param name="exception"></param> /// <param name="messageTemplate"></param> /// <param name="contextAct"></param> /// <param name="memberName"></param> /// <param name="filePath"></param> /// <param name="lineNumber"></param> public virtual void Log(LogTrack logTrack, LogEventLevel level, Exception exception, string messageTemplate, Action <LogEventContext> contextAct, [CallerMemberName] string memberName = null, [CallerFilePath] string filePath = null, [CallerLineNumber] int lineNumber = 0) { var ctx = TouchLogEventContext(contextAct); Write(logTrack, level, exception, messageTemplate, ctx.SendMode, new LogCallerInfo(memberName, filePath, lineNumber), ctx); }
/// <summary> /// Log /// </summary> /// <param name="logTrack"></param> /// <param name="level"></param> /// <param name="messageTemplate"></param> /// <param name="arg1"></param> /// <param name="arg2"></param> /// <param name="arg3"></param> /// <param name="contextAct"></param> /// <param name="memberName"></param> /// <param name="filePath"></param> /// <param name="lineNumber"></param> /// <typeparam name="T1"></typeparam> /// <typeparam name="T2"></typeparam> /// <typeparam name="T3"></typeparam> public virtual void Log <T1, T2, T3>(LogTrack logTrack, LogEventLevel level, string messageTemplate, T1 arg1, T2 arg2, T3 arg3, Action <LogEventContext> contextAct, [CallerMemberName] string memberName = null, [CallerFilePath] string filePath = null, [CallerLineNumber] int lineNumber = 0) { var ctx = TouchLogEventContext(contextAct); Write(logTrack, level, null, messageTemplate, ctx.SendMode, new LogCallerInfo(memberName, filePath, lineNumber), ctx, arg1, arg2, arg3); }
public void WriteLog(string sqlText, string suffixEventName, [CallerMemberName] string memberName = null) { var userInfo = _simgleLoggingAct?.Invoke(sqlText) ?? string.Empty; var logTrack = LogTrack.Create($"{EventIdKeys.SqlExposure}_{suffixEventName}"); var loggingObj = new { OrmName = Constants.SinkKey, Sql = sqlText, UserInfo = userInfo }; _logger.LogDebug(logTrack, OrmTemplateStandard.SimpleSqlLog, loggingObj, memberName); }
public ActionResult Refresh(string guid, int id) { string logName = "刷新页面停留时间"; string reJson = ""; try { #region 获得参数信息 int sourceId = 0; int.TryParse(PageTools.CookieSourceId, out sourceId); string mobile = PageTools.CookieMobile; LogTrack lt = new LogTrack(); FarmMonitor.BLL.LogTrackMan ltMan = new BLL.LogTrackMan(); if (id > 0) { lt = ltMan.GetEntity(id); } else { lt = ltMan.GetEntity(guid); } #endregion #region 更新数据 if (lt != null) { lt.RefreshTime = DateTime.Now; ltMan.Update(lt); reJson = string.Format(json, "1", "success", "", lt.Id); } else { reJson = string.Format(json, "2", "fail", "", 0); LogRunMan.AddLog(logName, WeDo.Log.Model.EnumListLog.LogLevel.INFO, null, "刷新对象为空"); } #endregion } catch (Exception ex) { LogExceptionMan.AddLog(logName, WeDo.Log.Model.EnumListLog.LogLevel.ERROR, ex); reJson = string.Format(json, "2", "error", "", 0); } return(Content(reJson)); }
private static void InternalExecutedOpt( SqlSugarInterceptorDescriptor descriptor, SqlSugarClient client, string sql, SugarParameter[] @params, Func<string, SugarParameter[], object> executedAct = null, Func<string, LogEventLevel, bool> filter = null) { var ms = 0D; if (client.TempItems.TryGetValue(TimestampKey, out var startStamp) && startStamp is DateTime stamp) { client.TempItems.Remove(TimestampKey); ms = DateTime.Now.Subtract(stamp).TotalMilliseconds; } object loggingParams; var userInfo = executedAct?.Invoke(sql, @params) ?? string.Empty; var logger = descriptor.ExposeLoggingServiceProvider.GetLogger<SqlSugarClient>(filter, LogEventSendMode.Automatic, descriptor.RenderingOptions); if (ms > 1000) { if (!logger.IsEnabled(LogEventLevel.Warning)) return; var logTrack = LogTrack.Create(client.ContextID, EventIdKeys.LongTimeExecuted); loggingParams = new { OrmName = Constants.SinkKey, ContextId = client.ContextID, Sql = sql, SqlParams = @params.Select(param => new DbParam(param.ParameterName, param.Value, param.DbType)).ToList(), UsedTime = ms, UserInfo = userInfo }; logger.LogWarning(logTrack, OrmTemplateStandard.LongNormal, loggingParams); } else { if (!logger.IsEnabled(LogEventLevel.Information)) return; var logTrack = LogTrack.Create(client.ContextID, EventIdKeys.Executed); loggingParams = new { OrmName = Constants.SinkKey, ContextId = client.ContextID, Sql = sql, UsedTime = ms, UserInfo = userInfo }; logger.LogInformation(logTrack, OrmTemplateStandard.Normal, loggingParams); } }
private void OnExecuted( DbCommand command, Guid contextId, DateTime start, DateTime now, double milliseconds, Func <string, DbParameterCollection, DateTime, DateTime, object> specificExecutedAction, string memberName) { var localFunc = _descriptor.ExposeExecutedInterceptor; localFunc += specificExecutedAction; var userInfo = localFunc?.Invoke(command.CommandText, command.Parameters, start, now) ?? string.Empty; var logTrack = LogTrack.Create(contextId, EventIdKeys.Executed); var logger = _loggingServiceProvider.GetLogger <DbContext>(LogEventSendMode.Automatic, _descriptor.ExposeSettings.GetRenderingOptions()); var loggingParams = new { OrmName = Constants.SinkKey, ContextId = contextId, Sql = command.CommandText, UsedTime = milliseconds, UserInfo = userInfo }; logger.LogWarning(logTrack, OrmTemplateStandard.Normal, loggingParams, memberName: memberName); }
public void AddLog(string systemName, int sourceId, int userId, int memberId, string cookiesSign, string moduleName, int dataType, int dataId, int shareSignId, string remark, string openId, string GUID, string session) { try { LogTrack message = new LogTrack(); message.SystemSign = systemName; message.SourceId = sourceId; message.Remark = remark; message.UserId = userId; message.DataId = dataId; message.DataType = dataType; message.MemberId = memberId; message.OpenId = openId; message.CookiesSign = cookiesSign; message.ModuleName = moduleName; message.ShareSignId = shareSignId; message.Remark = remark; message.GUID = GUID; message.SessionId = session; try { HttpRequest req = HttpContext.Current.Request; message.IP = req.UserHostAddress; //IP地址 message.PagePath = req.FilePath; //页面路径 message.PageUrl = req.Url.AbsoluteUri; //完整的URL message.HttpMethod = req.HttpMethod; //请求类型 message.BeforeUrl = req.UrlReferrer.AbsoluteUri; //前一页面完整URL } catch { } Add(message); //Info(message); } catch { } }
private static void InternalErrorOpt( SqlSugarInterceptorDescriptor descriptor, SqlSugarClient client, Exception exception, Func<Exception, object> errorAct = null, Func<string, LogEventLevel, bool> filter = null) { var ms = 0D; if (client.TempItems.TryGetValue(TimestampKey, out var startStamp) && startStamp is DateTime stamp) { client.TempItems.Remove(TimestampKey); ms = DateTime.Now.Subtract(stamp).TotalMilliseconds; } object userInfo = errorAct?.Invoke(exception) ?? string.Empty; var logger = descriptor.ExposeLoggingServiceProvider.GetLogger<SqlSugarClient>(filter, LogEventSendMode.Automatic, descriptor.RenderingOptions); if (!logger.IsEnabled(LogEventLevel.Error)) return; var logTrack = LogTrack.Create(client.ContextID, EventIdKeys.Error); var realException = exception.Unwrap(); var loggingParams = new { OrmName = Constants.SinkKey, ContextId = client.ContextID, Sql = "unknown", SqlParams = "unknown", ExceptionType = exception.GetType(), ExceptionMessage = exception.Message, RealExceptionType = realException.GetType(), RealExceptionMessage = realException.Message, UsedTime = ms, UserInfo = userInfo }; logger.LogError(logTrack, exception, OrmTemplateStandard.Error, loggingParams); }
/// <inheritdoc /> public void LogWarning(LogTrack logTrack, string messageTemplate, params object[] args) { }
/// <inheritdoc /> public virtual void LogDebug <T1, T2, T3>(LogTrack logTrack, Exception exception, string messageTemplate, T1 arg1, T2 arg2, T3 arg3, [CallerMemberName] string memberName = null) { Write(logTrack, LogEventLevel.Debug, exception, messageTemplate, LogEventSendMode.Customize, new LogCallerInfo(memberName), null, arg1, arg2, arg3); }
/// <summary> /// Convert Microsoft Event Id to Cosmos Logging Business Track Info /// </summary> /// <param name="eventId"></param> /// <returns></returns> public static LogTrack ToTrackInfo(this EventId eventId) => LogTrack.Create(eventId.Id, eventId.Name);
/// <inheritdoc /> public void LogError(LogTrack logTrack, string messageTemplate, params object[] args) => Write(logTrack, LogEventLevel.Error, null, messageTemplate, args);
/// <inheritdoc /> public virtual void LogInformation(LogTrack logTrack, Exception exception, string messageTemplate, [CallerMemberName] string memberName = null) { Write(logTrack, LogEventLevel.Information, exception, messageTemplate, LogEventSendMode.Customize, new LogCallerInfo(memberName)); }
public ActionResult Add0(string url = "", int sourceId = 0, string mobile = "", string modulName = "") { string reJson = ""; string logName = ""; try { #region 获得参数信息 if (sourceId > 0) { PageTools.CookieSourceId = sourceId.ToString(); } else { int.TryParse(PageTools.CookieSourceId, out sourceId); } if (!string.IsNullOrEmpty(mobile)) { PageTools.CookieMobile = mobile; } else { mobile = PageTools.CookieMobile; } string guid = Guid.NewGuid().ToString("N"); string uniqueUser = PageTools.CookieUniqueUser; if (string.IsNullOrEmpty(uniqueUser)) { uniqueUser = Guid.NewGuid().ToString("N"); PageTools.CookieUniqueUser = uniqueUser; } #endregion #region 添加日志 WeDo.Log.Model.LogTrackMessage message = new WeDo.Log.Model.LogTrackMessage(); message.SourceId = sourceId; message.BeforeUrl = ""; message.BrowserName = ""; message.CookiesSign = uniqueUser; message.DataId = 0; message.DataType = 0; message.DeviceName = ""; message.GUID = guid; message.HttpMethod = ""; message.IP = Request.UserHostAddress; message.MemberId = 0; message.ModuleName = modulName; message.OpenId = mobile; message.OSName = ""; message.PagePath = url; message.PageUrl = Request.Url.ToString(); message.Remark = ""; message.SearchKey = ""; message.SearchName = ""; message.SessionId = Session.SessionID; message.ShareSignId = 0; message.SourceId = sourceId; message.SystemSign = "volvo_ebook_view"; message.UserId = 0; //WeDo.Log.LogTrackMan.AddLog("volvo_ebook", sourceId, 0, 0, uniqueUser, modulName, 0, 0, 0, "", mobile, guid); WeDo.Log.LogTrackMan.AddLog(message, WeDo.Log.Model.EnumListLog.LogLevel.INFO); FarmMonitor.BLL.LogTrackMan ltMan = new BLL.LogTrackMan(); LogTrack lt = ltMan.GetEntity(guid); reJson = string.Format(json, "1", "success", guid, lt.Id); #endregion } catch (Exception ex) { LogExceptionMan.AddLog(logName, WeDo.Log.Model.EnumListLog.LogLevel.ERROR, ex); reJson = string.Format(json, "2", "error", "", 0); } return(Content(reJson)); }
/// <inheritdoc /> public void LogVerbose(LogTrack logTrack, string messageTemplate, params object[] args) { }
/// <inheritdoc /> public void LogFatal(LogTrack logTrack, Exception exception, string messageTemplate, params object[] args) { }
private static void InternalExecutedOpt( FreeSqlInterceptorDescriptor descriptor, CurdAfterEventArgs args, Func <CurdAfterEventArgs, object> executedAct = null, Func <Exception, CurdAfterEventArgs, object> errorAct = null, Func <string, LogEventLevel, bool> filter = null) { object loggingParams; var errorFlag = args.Exception != null; var userInfo = errorFlag ? errorAct?.Invoke(args.Exception, args) ?? string.Empty : executedAct?.Invoke(args) ?? string.Empty; var logger = descriptor.ExposeLoggingServiceProvider.GetLogger <IAdo>(filter, LogEventSendMode.Automatic, descriptor.RenderingOptions); if (!errorFlag && args.ElapsedMilliseconds > 1000) { if (!logger.IsEnabled(LogEventLevel.Warning)) { return; } var logTrack = LogTrack.Create(args.Identifier, EventIdKeys.LongTimeExecuted); loggingParams = new { OrmName = Constants.SinkKey, ContextId = args.Identifier, args.Sql, SqlParams = args.DbParms.Select(param => new DbParam(param.ParameterName, param.Value, param.DbType)).ToList(), UsedTime = args.ElapsedMilliseconds, UserInfo = userInfo }; logger.LogWarning(logTrack, OrmTemplateStandard.LongNormal, loggingParams); } else if (!errorFlag) { if (!logger.IsEnabled(LogEventLevel.Information)) { return; } var logTrack = LogTrack.Create(args.Identifier, EventIdKeys.Executed); loggingParams = new { OrmName = Constants.SinkKey, ContextId = args.Identifier, args.Sql, UsedTime = args.ElapsedMilliseconds, UserInfo = userInfo }; logger.LogInformation(logTrack, OrmTemplateStandard.Normal, loggingParams); } else { if (!logger.IsEnabled(LogEventLevel.Error)) { return; } var logTrack = LogTrack.Create(args.Identifier, EventIdKeys.Error); var exception = args.Exception; var realException = exception.Unwrap(); loggingParams = new { OrmName = Constants.SinkKey, ContextId = args.Identifier, args.Sql, SqlParams = args.DbParms.Select(param => new DbParam(param.ParameterName, param.Value, param.DbType)).ToList(), ExceptionType = exception.GetType(), ExceptionMessage = exception.Message, RealExceptionType = realException.GetType(), RealExceptionMessage = realException.Message, UsedTime = args.ElapsedMilliseconds, UserInfo = userInfo }; logger.LogError(logTrack, exception, OrmTemplateStandard.Error, loggingParams); } }
/// <inheritdoc /> public virtual void LogVerbose <T1, T2>(LogTrack logTrack, string messageTemplate, T1 arg1, T2 arg2, [CallerMemberName] string memberName = null) { Write(logTrack, LogEventLevel.Verbose, null, messageTemplate, LogEventSendMode.Customize, new LogCallerInfo(memberName), null, arg1, arg2); }
/// <inheritdoc /> public virtual void LogVerbose(LogTrack logTrack, string messageTemplate, object[] args, [CallerMemberName] string memberName = null) { Write(logTrack, LogEventLevel.Verbose, null, messageTemplate, LogEventSendMode.Customize, new LogCallerInfo(memberName), null, args); }
/// <inheritdoc /> public virtual void LogVerbose <T>(LogTrack logTrack, Exception exception, string messageTemplate, T arg, [CallerMemberName] string memberName = null) { Write(logTrack, LogEventLevel.Verbose, exception, messageTemplate, LogEventSendMode.Customize, new LogCallerInfo(memberName), null, arg); }
/// <inheritdoc /> public void LogInformation(LogTrack logTrack, string messageTemplate, params object[] args) => Write(logTrack, LogEventLevel.Information, null, messageTemplate, args);
public void Add(LogTrack entity) { db.LogTracks.Add(entity); db.SaveChanges(); }
/// <inheritdoc /> public void LogFatal(LogTrack logTrack, Exception exception, string messageTemplate, params object[] args) => Write(logTrack, LogEventLevel.Fatal, exception, messageTemplate, args);
public void Update(LogTrack entity) { db.Entry(entity).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); }
/// <inheritdoc /> public virtual void LogDebug <T>(LogTrack logTrack, string messageTemplate, T arg, [CallerMemberName] string memberName = null) { Write(logTrack, LogEventLevel.Debug, null, messageTemplate, LogEventSendMode.Customize, new LogCallerInfo(memberName), null, arg); }
public void Delete(LogTrack entity) { db.Entry(entity).State = System.Data.Entity.EntityState.Deleted; db.SaveChanges(); }
/// <inheritdoc /> public virtual void LogDebug(LogTrack logTrack, Exception exception, string messageTemplate, object[] args, [CallerMemberName] string memberName = null) { Write(logTrack, LogEventLevel.Debug, exception, messageTemplate, LogEventSendMode.Customize, new LogCallerInfo(memberName), null, args); }
/// <inheritdoc /> public void LogInformation(LogTrack logTrack, string messageTemplate, params object[] args) { }