private ApiLogModel ExtractLoggingInfoFromRequest(HttpRequestMessage request) { var info = new ApiLogModel(); info.HttpMethod = request.Method.Method; info.Url = request.RequestUri.AbsolutePath; info.IPAddress = HttpContext.Current != null ? HttpContext.Current.Request.UserHostAddress : "0.0.0.0"; info.Data = request.RequestUri.Query; if (request.Content.Headers.Contains("Content-Type")) { if (request.Content.Headers.GetValues("Content-Type").First().ToLower().Contains("application/json")) { info.Data = request.Content.ReadAsStringAsync().Result; } } info.CreatedOn = DateTime.Now; if (request.Headers.Any()) { string headers = ""; foreach (var head in request.Headers) { headers += head.Key + "=" + head.Value.First() + ";"; } info.Headers = headers; } return(info); }
private ApiLogModel ExtractResponseLoggingInfo(ApiLogModel with, HttpResponseMessage result) { if (result.StatusCode == System.Net.HttpStatusCode.OK) { } return(with); }
public async Task InvokeAsync(HttpContext context, RequestDelegate next) { HttpModel httpModel; httpModel = await LogRequest(context); httpModel = await LogResponse(context, next, httpModel); if (!context.Request.Path.Value.StartsWith("/api")) { return; } var logLevel = Regex.IsMatch(httpModel.StatusCode.ToString(), RegexErrors) ? "ERROR" : "INFO"; var log = new ApiLogModel { App = ProjectName, Team = _options.Team, Kind = "server", Version = CurrentVersion, Level = logLevel, Http = httpModel }; var logMessage = log.ToJson(); _logger.LogInformation(new EventId(), logMessage); }
public static void Log(ApiLogModel model) { using (FileStream fs = new FileStream(GetFileToUse(true), FileMode.Append, FileAccess.Write)) { using (System.IO.TextWriter writer = new StreamWriter(fs)) { var csv = new CsvWriter(writer); csv.WriteRecord(model); writer.Dispose(); } } }
private static ApiLogModel BuildApiLog(HttpRequest request) { ApiLogModel log = new ApiLogModel() { Hash = request.Headers["Hash"], Token = request.Headers["Token"], Host = request.Url.Host, PathAndQuery = request.Url.PathAndQuery, Server = Environment.MachineName, UserAgent = request.UserAgent, IpAddress = IpUtility.GetIp(), IMEI = request.Headers["IMEI"], Device = request.Headers["Device"], OsVersion = request.Headers["OsVersion"], MacAddress = request.Headers["MacAddress"] }; return(log); }
public virtual int AddApiLog(ApiLogModel log) { DbCommand cmd = GetStoredProcCommand("P_Client_AddApiLog"); AddInParameter(cmd, "Hash", DbType.String, GetParameterValue(log.Hash)); AddInParameter(cmd, "Host", DbType.String, GetParameterValue(log.Host)); AddInParameter(cmd, "ValidationResult", DbType.String, GetParameterValue(log.ValidationResult)); AddInParameter(cmd, "PathAndQuery", DbType.String, GetParameterValue(log.PathAndQuery)); AddInParameter(cmd, "Server", DbType.String, GetParameterValue(log.Server)); AddInParameter(cmd, "Token", DbType.String, GetParameterValue(log.Token)); AddInParameter(cmd, "UserAgent", DbType.String, GetParameterValue(log.UserAgent)); AddInParameter(cmd, "Controller", DbType.String, GetParameterValue(log.Controller)); AddInParameter(cmd, "Action", DbType.String, GetParameterValue(log.Action)); AddInParameter(cmd, "IpAddress", DbType.String, GetParameterValue(log.IpAddress)); AddInParameter(cmd, "IMEI", DbType.String, GetParameterValue(log.IMEI)); AddInParameter(cmd, "Device", DbType.String, GetParameterValue(log.Device)); AddInParameter(cmd, "OsVersion", DbType.String, GetParameterValue(log.OsVersion)); AddInParameter(cmd, "MacAddress", DbType.String, GetParameterValue(log.MacAddress)); AddOutParameter(cmd, "ApiLogId", DbType.Int32, 4); ExecuteNonQuery(cmd); return(GetOutputParameter <Int32>(cmd, "@ApiLogId")); }
public override void OnActionExecuting(HttpActionContext actionContext) { bool ignoreValidate = (actionContext.ActionDescriptor.GetCustomAttributes <IgnoreValidateAttribute>().Count > 0); HttpRequest request = HttpContext.Current.Request; SpecialLog(request); ApiLogModel log = BuildApiLog(request); log.Controller = actionContext.ControllerContext.ControllerDescriptor.ControllerName; log.Action = actionContext.ActionDescriptor.ActionName; CheckResult result = ignoreValidate ? CheckResult.FROM_ZJB : Check(request); log.ValidationResult = result.ToString(); if (result == CheckResult.INVALID_HASH || result == CheckResult.INVALID_USERAGENT) { apiBll.AddApiLog(log); actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Forbidden, new ApiResponse(Metas.INVALID_PERMISSION, null)); return; } apiBll.AddApiLog(log); }
public ActionResult ApiLogDetails(ApiLogModel model) { return(View(model)); }
public int AddApiLog(ApiLogModel log) { return(apiDal.AddApiLog(log)); }