Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 /// <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);
Ejemplo n.º 5
0
 protected override Task DoInsert(LogInsert model, BaseLogInformation info, int maxLength)
 {
     Debug.WriteLine(model.Message, info.CategoryStr);
     WriteOther(model.Other);
     return(Task.CompletedTask);
 }