Skip to content

Commit 474e05f

Browse files
scalar deconstruction
1 parent 4c21f7a commit 474e05f

8 files changed

Lines changed: 57 additions & 20 deletions

File tree

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System.Configuration;
12
using Serilog;
23

34
namespace GridDomain.Logging
@@ -6,11 +7,18 @@ public class DefaultLoggerConfiguration : LoggerConfiguration
67
{
78
public DefaultLoggerConfiguration()
89
{
9-
WriteTo.RollingFile(".\\GridDomainLogs\\logs-{Date}.txt").
10+
var filePath = ConfigurationManager.AppSettings["logFilePath"] ?? @"C:\Logs";
11+
var elasticEndpoint = ConfigurationManager.AppSettings["logElasticEndpoint"] ?? "http://soloinfra.cloudapp.net:9222";
12+
WriteTo.RollingFile(filePath + "\\logs-{Date}.txt").
1013
//.WriteTo.Slack("https://hooks.slack.com/services/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")
11-
WriteTo.Elasticsearch("http://soloinfra.cloudapp.net:9222")
14+
WriteTo.Elasticsearch(elasticEndpoint)
1215
.Enrich
1316
.WithMachineName();
17+
18+
foreach (var type in TypesForScalarDescruptionHolder.Types)
19+
{
20+
Destructure.AsScalar(type);
21+
}
1422
}
1523
}
1624
}

GridDomain.Logging/GridDomain.Logging.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
</Reference>
7070
<Reference Include="System" />
7171
<Reference Include="System.ComponentModel.DataAnnotations" />
72+
<Reference Include="System.Configuration" />
7273
<Reference Include="System.Core" />
7374
<Reference Include="System.Xml.Linq" />
7475
<Reference Include="System.Data.DataSetExtensions" />
@@ -87,6 +88,7 @@
8788
<Compile Include="ObjectLogExtensions.cs" />
8889
<Compile Include="Properties\AssemblyInfo.cs" />
8990
<Compile Include="SerilogLogger.cs" />
91+
<Compile Include="TypesForScalarDescruptionHolder.cs" />
9092
</ItemGroup>
9193
<ItemGroup>
9294
<None Include="App.config" />

GridDomain.Logging/LogManager.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-

2-
namespace GridDomain.Logging
1+
namespace GridDomain.Logging
32
{
43
public static class LogManager
54
{
65
private static ILoggerFactory _loggerFactory = new DefaultLoggerFactory();
7-
86
public static void SetLoggerFactory(ILoggerFactory loggerFactory)
97
{
108
_loggerFactory = loggerFactory;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
5+
namespace GridDomain.Logging
6+
{
7+
public static class TypesForScalarDescruptionHolder
8+
{
9+
private static readonly HashSet<Type> TypesToDesctructAsScalars = new HashSet<Type>();
10+
11+
public static void Add(params Type[] types)
12+
{
13+
foreach (var type in types)
14+
{
15+
TypesToDesctructAsScalars.Add(type);
16+
}
17+
}
18+
19+
public static Type[] Types => TypesToDesctructAsScalars.ToArray();
20+
}
21+
}

GridDomain.Tests.Acceptance/App.config

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
<?xml version="1.0" encoding="utf-8"?>
22

33
<configuration>
4-
<configSections>
5-
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
6-
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
7-
</configSections>
4+
<configSections>
5+
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
6+
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
7+
</configSections>
8+
<appSettings>
9+
<add key="logFilePath" value="C:\Logs" />
10+
<add key="logElasticEndpoint" value="http://soloinfra.cloudapp.net:9222" />
11+
</appSettings>
812
<runtime>
913
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
1014
<dependentAssembly>

GridDomain.Tests.Acceptance/GridDomain.Tests.Acceptance.csproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,14 @@
183183
<HintPath>..\packages\Quartz.2.3.3\lib\net40\Quartz.dll</HintPath>
184184
<Private>True</Private>
185185
</Reference>
186+
<Reference Include="Serilog, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
187+
<HintPath>..\packages\Serilog.1.5.14\lib\net45\Serilog.dll</HintPath>
188+
<Private>True</Private>
189+
</Reference>
190+
<Reference Include="Serilog.FullNetFx, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
191+
<HintPath>..\packages\Serilog.1.5.14\lib\net45\Serilog.FullNetFx.dll</HintPath>
192+
<Private>True</Private>
193+
</Reference>
186194
<Reference Include="Stateless, Version=2.5.62.0, Culture=neutral, PublicKeyToken=93038f0927583c9a, processorArchitecture=MSIL">
187195
<HintPath>..\packages\Stateless.2.5.62.0\lib\portable-net40+sl50+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10\Stateless.dll</HintPath>
188196
<Private>True</Private>

GridDomain.Tests.Acceptance/Scheduling/Spec.cs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,20 @@
66
using System.Threading;
77
using Akka.Actor;
88
using Akka.DI.Core;
9-
using Akka.DI.Unity;
109
using GridDomain.Common;
1110
using GridDomain.CQRS;
1211
using GridDomain.CQRS.Messaging;
13-
using GridDomain.CQRS.Messaging.MessageRouting;
1412
using GridDomain.EventSourcing.Sagas;
1513
using GridDomain.Logging;
16-
using GridDomain.Node;
17-
using GridDomain.Node.Actors;
18-
using GridDomain.Node.Configuration.Akka;
1914
using GridDomain.Node.Configuration.Composition;
20-
using GridDomain.Node.Configuration.Persistence;
2115
using GridDomain.Scheduling.Akka.Messages;
2216
using GridDomain.Scheduling.Integration;
23-
using GridDomain.Scheduling.Quartz;
2417
using GridDomain.Scheduling.Quartz.Logging;
2518
using GridDomain.Tests.Acceptance.Scheduling.TestHelpers;
2619
using GridDomain.Tests.Framework;
27-
using GridDomain.Tests.Framework.Configuration;
2820
using Microsoft.Practices.Unity;
2921
using Moq;
22+
using NMoneys;
3023
using NUnit.Framework;
3124
using Wire;
3225
using IScheduler = Quartz.IScheduler;
@@ -44,7 +37,7 @@ public class Spec : ExtendedNodeCommandTest
4437

4538
public Spec() : base(false)
4639
{
47-
40+
4841
}
4942

5043
protected override IContainerConfiguration CreateConfiguration()
@@ -73,10 +66,12 @@ public void Register(IUnityContainer container)
7366
container.RegisterStateSaga<TestSaga, TestSagaState, TestSagaStartMessage, TestSagaFactory>();
7467
}
7568
}
76-
69+
7770
[SetUp]
7871
public void SetUp()
7972
{
73+
LogManager.SetLoggerFactory(new DefaultLoggerFactory());
74+
TypesForScalarDescruptionHolder.Add(typeof(Money));
8075
DateTimeStrategyHolder.Current = new DefaultDateTimeStrategy();
8176
_container = GridNode.Container;
8277
CreateScheduler();
@@ -99,7 +94,7 @@ private void CreateScheduler()
9994
[Test]
10095
public void LogTest()
10196
{
102-
LogManager.GetLogger().Error(new InvalidOperationException("ohshitwaddap"), "message {placeholder}", 18723);
97+
LogManager.GetLogger().Error(new InvalidOperationException("ohshitwaddap"), "message {placeholder}", new { Money = new Money(123, CurrencyIsoCode.RUB) });
10398
}
10499

105100
[Test]

GridDomain.Tests.Acceptance/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<package id="NMoneys" version="4.2.0.0" targetFramework="net461" />
3232
<package id="NUnit" version="2.6.4" targetFramework="net461" />
3333
<package id="Quartz" version="2.3.3" targetFramework="net461" />
34+
<package id="Serilog" version="1.5.14" targetFramework="net461" />
3435
<package id="Stateless" version="2.5.62.0" targetFramework="net461" />
3536
<package id="System.Collections" version="4.0.10" targetFramework="net461" />
3637
<package id="System.Collections.Immutable" version="1.1.36" targetFramework="net461" />

0 commit comments

Comments
 (0)