Skip to content

Commit

Permalink
Add styling options to small keywords in exception traces
Browse files Browse the repository at this point in the history
  • Loading branch information
daningalla committed Aug 6, 2022
1 parent 42eaa96 commit 8884d09
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 9 deletions.
8 changes: 7 additions & 1 deletion src/Options/SpectreLoggingBuilder.Defaults.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,15 @@ private void ConfigureDefaults()
{
ConfigureProfile(LogLevel.Trace, profile =>
{
var baseColor = $"[{Color.Grey35}]";
var baseColor = Color.Grey35;
profile.OutputTemplate = "[grey35][[{DateTime:T} Trce]] {Message}{NewLine}{Exception}[/]";
profile.DefaultLogValueStyle = $"[{Color.Grey46}]";
profile
.AddTypeStyle<ExceptionRenderer.MethodNameValue>(baseColor)
.AddTypeStyle<ExceptionRenderer.ParameterTypeValue>(baseColor)
.AddTypeStyle<ExceptionRenderer.SourceLocationValue>(Color.DarkViolet)
.AddTypeStyle<ExceptionRenderer.SourceFileValue>(Color.DarkGoldenrod)
.AddTypeStyle<ExceptionRenderer.TextValue>(baseColor)
.AddTypeStyle<CategoryNameRenderer.Value>(baseColor)
.AddTypeStyle<DateTimeRenderer.Value>(baseColor);
});
Expand All @@ -39,6 +40,7 @@ private void ConfigureDefaults()
.AddTypeStyle<ExceptionRenderer.SourceLocationValue>(Color.DarkViolet)
.AddTypeStyle<ExceptionRenderer.SourceDirectoryValue>(Color.Grey66)
.AddTypeStyle<ExceptionRenderer.SourceFileValue>(Color.DarkGoldenrod)
.AddTypeStyle<ExceptionRenderer.TextValue>(Color.Grey35)
.AddTypeStyle<DestructuredKeyValue>(Color.Grey70)
.AddTypeStyle<CategoryNameRenderer.Value>(Color.Grey46)
.AddTypeStyle<DateTimeRenderer.Value>(Color.Grey46)
Expand All @@ -62,6 +64,7 @@ private void ConfigureDefaults()
.AddTypeStyle<ExceptionRenderer.SourceLocationValue>(Color.Magenta3_2)
.AddTypeStyle<ExceptionRenderer.SourceDirectoryValue>(Color.Grey66)
.AddTypeStyle<ExceptionRenderer.SourceFileValue>(Color.Gold3_1)
.AddTypeStyle<ExceptionRenderer.TextValue>(Color.Grey42)
.AddTypeStyle<DestructuredKeyValue>(Color.Grey70)
.AddTypeStyle<CategoryNameRenderer.Value>(Color.Grey85)
.AddTypeStyle<DateTimeRenderer.Value>(Color.Grey)
Expand All @@ -85,6 +88,7 @@ private void ConfigureDefaults()
.AddTypeStyle<ExceptionRenderer.SourceLocationValue>(Color.Magenta3_2)
.AddTypeStyle<ExceptionRenderer.SourceDirectoryValue>(Color.Grey66)
.AddTypeStyle<ExceptionRenderer.SourceFileValue>(Color.Gold3_1)
.AddTypeStyle<ExceptionRenderer.TextValue>(Color.Grey42)
.AddTypeStyle<DestructuredKeyValue>(Color.Grey70)
.AddTypeStyle<CategoryNameRenderer.Value>(Color.Grey85)
.AddTypeStyle<DateTimeRenderer.Value>(Color.Grey85)
Expand All @@ -108,6 +112,7 @@ private void ConfigureDefaults()
.AddTypeStyle<ExceptionRenderer.SourceLocationValue>(Color.Magenta3_2)
.AddTypeStyle<ExceptionRenderer.SourceDirectoryValue>(Color.Grey66)
.AddTypeStyle<ExceptionRenderer.SourceFileValue>(Color.Gold3_1)
.AddTypeStyle<ExceptionRenderer.TextValue>(Color.Grey42)
.AddTypeStyle<DestructuredKeyValue>(Color.Grey70)
.AddTypeStyle<CategoryNameRenderer.Value>(Color.Grey85)
.AddTypeStyle<DateTimeRenderer.Value>(Color.Grey85)
Expand All @@ -131,6 +136,7 @@ private void ConfigureDefaults()
.AddTypeStyle<ExceptionRenderer.SourceLocationValue>(Color.Magenta3_2)
.AddTypeStyle<ExceptionRenderer.SourceDirectoryValue>(Color.Grey66)
.AddTypeStyle<ExceptionRenderer.SourceFileValue>(Color.Gold3_1)
.AddTypeStyle<ExceptionRenderer.TextValue>(Color.Grey42)
.AddTypeStyle<DestructuredKeyValue>(Color.Grey70)
.AddTypeStyle<CategoryNameRenderer.Value>(Color.Grey85)
.AddTypeStyle<DateTimeRenderer.Value>(Color.Grey85)
Expand Down
8 changes: 8 additions & 0 deletions src/Rendering/ExceptionRenderer.Formatting.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,5 +68,13 @@ public sealed class SourceLocationValue : ValueWrapper<int>
{
internal SourceLocationValue(int lineNumber) : base(lineNumber) {}
}

/// <summary>
/// Wraps any other text in an exception message.
/// </summary>
public sealed class TextValue : ValueWrapper<string>
{
internal TextValue(string str) : base(str) {}
}
}
}
9 changes: 4 additions & 5 deletions src/Rendering/ExceptionRenderer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,6 @@ public void Render(IWriteBuffer buffer, in LogEventContext context)

var trace = new StackTrace(exception, fNeedFileInfo: true);
var frames = trace.GetFrames();

if (frames == null)
return;

var length = Math.Min(frames.Length, options.MaxStackFrames);
var hiddenCount = frames.Length - options.MaxStackFrames;
Expand Down Expand Up @@ -151,12 +148,13 @@ public void Render(IWriteBuffer buffer, in LogEventContext context)

if (method == null)
return;

buffer.WriteLogValue(profile, null, new TextValue("at "));

buffer.WriteLogValue(profile, null, new MethodNameValue(method.Name), name =>
{
var formattedMethodType = TypeNameFormatter.Format(method.DeclaringType!);
buffer.Write("at ");
buffer.Write(formattedMethodType);
buffer.Write('.');
buffer.Write(name);
Expand Down Expand Up @@ -234,9 +232,10 @@ public void Render(IWriteBuffer buffer, in LogEventContext context)
if (string.IsNullOrWhiteSpace(file))
return;

buffer.WriteLogValue(profile, null, new TextValue(" in "));

buffer.WriteLogValue(profile, null, new SourceDirectoryValue(directory), value =>
{
buffer.Write(" in ");
buffer.Write(value);
buffer.WriteLogValue(profile, null, new SourceFileValue(file));
Expand Down
3 changes: 0 additions & 3 deletions src/Rendering/RendererPipeline.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.ObjectPool;
using Microsoft.Extensions.Options;
using Vertical.SpectreLogger.Core;
using Vertical.SpectreLogger.Internal;
using Vertical.SpectreLogger.Options;
using Vertical.SpectreLogger.Output;
using Vertical.SpectreLogger.Templates;
Expand Down

0 comments on commit 8884d09

Please sign in to comment.