protected override Task DoInsert(LogInsert model, BaseLogInformation info, int maxLength) { var subject = $"[{model.Identifier}] Log Insert for: {model.Application ?? "Unknown"} ({Host.EnvironmentName})"; var body = $@" {info.ApplicationStr} Environment: {Host.EnvironmentName} {info.MachineStr} {info.TypeStr} {info.IdentifierStr} {info.TimestampStr} {info.SeverityStr} {info.RequestStr} {info.OrderStr} {info.SessionStr()} {info.UserStr} {info.MessageStr.ShortenWithEllipses(maxLength)} {info.CategoryStr.ShortenWithEllipses(maxLength)} {string.Join("\r\n", model.Other)} "; return(Email.SendAsync(EmailImpl, EmailType.Logging, subject, body)); }
public Task <ulong?> InsertHeader(LogInsert model, IDbTransaction trans) { var parameters = new { p_Type = model.Type, p_Identifier = model.Identifier, p_Severity = model.Severity, p_Order = model.Order, p_RequestId = model.RequestId ?? "Unknown", p_Session = model.Session ?? "Unknown", p_Message = model.Message.ShortenWithEllipses(4000) ?? "", p_Category = model.Category.ShortenWithEllipses(4000) ?? "Unknown", p_Machine = model.Machine ?? "Unknown", p_Application = model.Application, p_UserId = model.UserId, p_CustomerId = model.Other[SphyrnidaeIdentity.CustomerIdKey] }; return(ScalarSPAsync <ulong?>("LogHeader_Insert", parameters, trans)); }
protected virtual LogInsert ToInsertModel(BaseLogInformation info, int maxLength) { var model = new LogInsert { Type = info.Type, Identifier = info.Identifier, Timestamp = info.Timestamp, Severity = info.Severity, Order = info.Order, RequestId = info.RequestId, Session = info.Session, UserId = info.UserId ?? 0, Message = info.Message.ShortenWithEllipses(maxLength), Category = info.Category.ShortenWithEllipses(maxLength), Machine = info.Machine, Application = info.Application }; if (IncludeIdentity) { foreach (var(key, value) in info.IdentityProperties) { model.Other.Add(key, value.ShortenWithEllipses(maxLength)); } } if (IncludeStatic) { foreach (var(key, value) in info.StaticProperties) { model.Other.Add(key, value.ShortenWithEllipses(maxLength)); } } if (IncludeHigh) { foreach (var(key, value) in info.HighProperties) { model.Other.Add(key, value.ShortenWithEllipses(maxLength)); } } if (IncludeMed) { foreach (var(key, value) in info.MedProperties) { model.Other.Add(key, value.ShortenWithEllipses(maxLength)); } } // ReSharper disable once InvertIf if (IncludeLow) { foreach (var(key, value) in info.LowProperties) { model.Other.Add(key, value.ShortenWithEllipses(maxLength)); } } return(model); }
/// <summary> /// Actual implementation of logging the record /// </summary> /// <param name="model">The model containing everything to be logged</param> /// <param name="info">The log information class</param> /// <param name="maxLength">When to truncate items</param> protected abstract Task DoInsert(LogInsert model, BaseLogInformation info, int maxLength);
protected override Task DoInsert(LogInsert model, BaseLogInformation info, int maxLength) { Debug.WriteLine(model.Message, info.CategoryStr); WriteOther(model.Other); return(Task.CompletedTask); }