Skip to content

Commit ec39227

Browse files
authored
Merge pull request #37 from akkadotnet/dev
Akka.Logger.Serilog v1.3.0 release
2 parents df3c7dd + 3455874 commit ec39227

File tree

9 files changed

+51
-132
lines changed

9 files changed

+51
-132
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#### Akka.Logger.Serilog ####
22

3-
This is the Serilog integration plugin for Akka.NET. Please check out our [documentation](http://getakka.net/docs/Serilog) on how to get the most out of this plugin.
3+
This is the Serilog integration plugin for Akka.NET. Please check out our [documentation](http://getakka.net/articles/utilities/serilog.html) on how to get the most out of this plugin.
44

5-
Targets Serilog 2.4.0
5+
Targets Serilog 2.6.0
66

RELEASE_NOTES.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
#### 1.3.0 January 27 2018 ####
2+
3+
Removed SerilogLogMessageFormatter since its no longer needed
4+
Support for Akka 1.3.3
5+
Update to Serilog 2.6.0
6+
17
#### 1.2.0 April 18 2017 ####
28

39
Support for Akka 1.2.0

src/Akka.Logger.Serilog.sln

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 14
4-
VisualStudioVersion = 14.0.24720.0
3+
# Visual Studio 15
4+
VisualStudioVersion = 15.0.26730.16
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Akka.Logger.Serilog", "Akka.Logger.Serilog\Akka.Logger.Serilog.csproj", "{53D9D2F0-4A35-4FCE-980C-8F7F3DCBDB2B}"
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Akka.Logger.Serilog", "Akka.Logger.Serilog\Akka.Logger.Serilog.csproj", "{53D9D2F0-4A35-4FCE-980C-8F7F3DCBDB2B}"
77
EndProject
88
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BA416AC7-E51E-48C2-B74F-FAC3506A811C}"
99
ProjectSection(SolutionItems) = preProject
1010
..\build.fsx = ..\build.fsx
1111
..\README.md = ..\README.md
1212
..\RELEASE_NOTES.md = ..\RELEASE_NOTES.md
13-
SharedAssemblyInfo.cs = SharedAssemblyInfo.cs
1413
EndProjectSection
1514
EndProject
1615
Global
@@ -27,4 +26,7 @@ Global
2726
GlobalSection(SolutionProperties) = preSolution
2827
HideSolutionNode = FALSE
2928
EndGlobalSection
29+
GlobalSection(ExtensibilityGlobals) = postSolution
30+
SolutionGuid = {9CD3DD63-AFFE-499F-B7EA-29D7A39F4243}
31+
EndGlobalSection
3032
EndGlobal

src/Akka.Logger.Serilog/Akka.Logger.Serilog.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
<ItemGroup>
1818
<PackageReference Include="Akka" Version="1.3.0" />
19-
<PackageReference Include="Serilog" Version="2.5.0" />
19+
<PackageReference Include="Serilog" Version="2.6.0" />
2020
</ItemGroup>
2121

2222
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">

src/Akka.Logger.Serilog/MessageTemplateCache.cs

Lines changed: 0 additions & 58 deletions
This file was deleted.

src/Akka.Logger.Serilog/SerilogLogMessageFormatter.cs

Lines changed: 0 additions & 61 deletions
This file was deleted.

src/Akka.Logger.Serilog/SerilogLogger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class SerilogLogger : ReceiveActor, IRequiresMessageQueue<ILoggerMessageQ
2727
private static string GetFormat(object message)
2828
{
2929
var logMessage = message as LogMessage;
30-
return logMessage != null ? logMessage.Format : "{Message}";
30+
return logMessage != null ? logMessage.Format : "{Message:l}";
3131
}
3232

3333
private static object[] GetArgs(object message)

src/Akka.Logger.Serilog/SerilogLoggingAdapter.cs

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,27 @@ namespace Akka.Logger.Serilog
99
{
1010
public class SerilogLoggingAdapter : ILoggingAdapter
1111
{
12+
/// <summary>
13+
/// Helper class that allows context trees.
14+
/// </summary>
15+
private class ContextNode
16+
{
17+
public ContextNode Next { get; set; }
18+
public ILogEventEnricher Enricher { get; set; }
19+
}
20+
1221
private readonly ILoggingAdapter adapter;
13-
private readonly IDictionary<string, ILogEventEnricher> enrichers = new Dictionary<string, ILogEventEnricher>();
22+
private readonly ContextNode enricherNode;
1423

1524
public SerilogLoggingAdapter(ILoggingAdapter adapter)
25+
: this(adapter, null)
26+
{
27+
}
28+
29+
private SerilogLoggingAdapter(ILoggingAdapter adapter, ContextNode enricherNode)
1630
{
1731
this.adapter = adapter;
32+
this.enricherNode = enricherNode;
1833
}
1934

2035
/// <summary>
@@ -117,14 +132,29 @@ public virtual void Log(LogLevel logLevel, string format, params object[] args)
117132

118133
public ILoggingAdapter SetContextProperty(string name, object value, bool destructureObjects = false)
119134
{
120-
enrichers.Add(name, new PropertyEnricher(name, value, destructureObjects));
121-
return this;
135+
var contextProperty = new PropertyEnricher(name, value, destructureObjects);
136+
137+
var contextNode = new ContextNode
138+
{
139+
Enricher = contextProperty,
140+
Next = enricherNode
141+
};
142+
143+
return new SerilogLoggingAdapter(adapter, contextNode);
122144
}
123145

124146
private object[] BuildArgs(IEnumerable<object> args)
125147
{
126148
var newArgs = args.ToList();
127-
newArgs.AddRange(enrichers.Select(enricher => enricher.Value));
149+
if (enricherNode != null)
150+
{
151+
var currentNode = enricherNode;
152+
while (currentNode != null)
153+
{
154+
newArgs.Add(currentNode.Enricher);
155+
currentNode = currentNode.Next;
156+
}
157+
}
128158
return newArgs.ToArray();
129159
}
130160
}

src/Akka.Logger.Serilog/SerilogLoggingAdapterExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static ILoggingAdapter GetLogger<T>(this IActorContext context)
3030
var logSource = context.Self.ToString();
3131
var logClass = context.Props.Type;
3232

33-
return Activator.CreateInstance(typeof(T), new BusLogging(context.System.EventStream, logSource, logClass, new SerilogLogMessageFormatter())) as T;
33+
return Activator.CreateInstance(typeof(T), new BusLogging(context.System.EventStream, logSource, logClass, new DefaultLogMessageFormatter())) as T;
3434
}
3535
}
3636
}

0 commit comments

Comments
 (0)