diff --git a/Serilog.sln b/Serilog.sln
index b7043bd35..e34c85a67 100644
--- a/Serilog.sln
+++ b/Serilog.sln
@@ -21,6 +21,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Serilog", "src\Serilog\Seri
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Serilog.Tests", "test\Serilog.Tests\Serilog.Tests.xproj", "{3C2D8E01-5580-426A-BDD9-EC59CD98E618}"
EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "TestDummies", "test\TestDummies\TestDummies.xproj", "{2BB12CE5-C867-43BD-AE5D-253FE3248C7F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -35,6 +37,10 @@ Global
{3C2D8E01-5580-426A-BDD9-EC59CD98E618}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3C2D8E01-5580-426A-BDD9-EC59CD98E618}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3C2D8E01-5580-426A-BDD9-EC59CD98E618}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2BB12CE5-C867-43BD-AE5D-253FE3248C7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2BB12CE5-C867-43BD-AE5D-253FE3248C7F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2BB12CE5-C867-43BD-AE5D-253FE3248C7F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2BB12CE5-C867-43BD-AE5D-253FE3248C7F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -42,5 +48,6 @@ Global
GlobalSection(NestedProjects) = preSolution
{803CD13A-D54B-4CEC-A55F-E22AE3D93B3C} = {037440DE-440B-4129-9F7A-09B42D00397E}
{3C2D8E01-5580-426A-BDD9-EC59CD98E618} = {0D135C0C-A60B-454A-A2F4-CD74A30E04B0}
+ {2BB12CE5-C867-43BD-AE5D-253FE3248C7F} = {0D135C0C-A60B-454A-A2F4-CD74A30E04B0}
EndGlobalSection
EndGlobal
diff --git a/global.json b/global.json
index 332d21ef8..a627426d0 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"projects": [ "src", "test" ],
- "sdk": {
- "version": "1.0.0-rc1-final"
- }
+ "sdk": {
+ "version": "1.0.0-preview1-002702"
+ }
}
diff --git a/src/Serilog/Context/ImmutableStack.cs b/src/Serilog/Context/ImmutableStack.cs
index 1e87d2a2c..8af38efb0 100644
--- a/src/Serilog/Context/ImmutableStack.cs
+++ b/src/Serilog/Context/ImmutableStack.cs
@@ -18,6 +18,10 @@
using System.Runtime.Serialization;
#endif
+// General-purpose type; not all features are used here.
+// ReSharper disable MemberCanBePrivate.Global
+// ReSharper disable MemberCanBeProtected.Global
+
namespace Serilog.Context
{
// Needed because of the shallow-copying behaviour of
diff --git a/src/Serilog/Core/Pipeline/SilentLogger.cs b/src/Serilog/Core/Pipeline/SilentLogger.cs
index 1492f73e0..aff023c68 100644
--- a/src/Serilog/Core/Pipeline/SilentLogger.cs
+++ b/src/Serilog/Core/Pipeline/SilentLogger.cs
@@ -109,6 +109,7 @@ public void Error(Exception exception, string messageTemplate, params object[] p
{
}
+ [MessageTemplateFormatMethod("messageTemplate")]
public void Fatal(string messageTemplate, params object[] propertyValues)
{
}
diff --git a/src/Serilog/Serilog.xproj b/src/Serilog/Serilog.xproj
index c26bd62ac..aaf9619ee 100644
--- a/src/Serilog/Serilog.xproj
+++ b/src/Serilog/Serilog.xproj
@@ -8,22 +8,10 @@
803cd13a-d54b-4cec-a55f-e22ae3d93b3c
Serilog
- ..\..\artifacts\obj\$(MSBuildProjectName)
- ..\..\artifacts\bin\$(MSBuildProjectName)\
-
+ .\obj
+ .\bin\
2.0
-
- True
-
-
- True
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
diff --git a/src/Serilog/project.json b/src/Serilog/project.json
index 40a306743..21a8ec03c 100644
--- a/src/Serilog/project.json
+++ b/src/Serilog/project.json
@@ -1,57 +1,54 @@
{
- "version": "2.0.0-beta-*",
+ "version": "2.0.0-rc-*",
"description": "Simple .NET logging with fully-structured events",
"authors": [ "Serilog Contributors" ],
- "tags": [ "serilog", "logging", "semantic", "structured" ],
- "projectUrl": "http://serilog.net",
- "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0",
- "iconUrl": "http://serilog.net/images/serilog-nuget.png",
- "compilationOptions": {
- "keyFile": "../../assets/Serilog.snk"
+ "packOptions": {
+ "tags": [ "serilog", "logging", "semantic", "structured" ],
+ "projectUrl": "http://serilog.net",
+ "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0",
+ "iconUrl": "http://serilog.net/images/serilog-nuget.png"
+ },
+ "buildOptions": {
+ "keyFile": "../../assets/Serilog.snk",
+ "xmlDoc": true
},
"frameworks": {
- "net45": {
- "compilationOptions": {
- "define": [ "PROCESS", "REMOTING", "APPDOMAIN" ]
+ "net4.5": {
+ "buildOptions": {
+ "define": [ "REMOTING" ]
}
},
- "dotnet5.1": {
+ "netstandard1.0": {
"dependencies": {
- "Microsoft.CSharp": "4.0.1-beta-23516",
- "System.Console": "4.0.0-beta-23516",
- "System.Diagnostics.TraceSource": "4.0.0-beta-23516",
- "System.Globalization": "4.0.11-beta-23516",
- "System.IO": "4.0.11-beta-23516",
- "System.Linq": "4.0.1-beta-23516",
- "System.Reflection.Extensions": "4.0.1-beta-23516",
- "System.Runtime.Extensions": "4.0.11-beta-23516",
- "System.Runtime.Serialization.Primitives": "4.1.0-beta-23516",
- "System.Text.RegularExpressions": "4.0.11-beta-23516",
- "System.Threading": "4.0.11-beta-23516",
- "System.Threading.Thread": "4.0.0-beta-23516"
+ "Microsoft.CSharp": "4.0.1-rc2-24027",
+ "System.Collections": "4.0.11-rc2-24027",
+ "System.Dynamic.Runtime": "4.0.11-rc2-24027",
+ "System.Globalization": "4.0.11-rc2-24027",
+ "System.Linq": "4.1.0-rc2-24027",
+ "System.Reflection": "4.1.0-rc2-24027",
+ "System.Reflection.Extensions": "4.0.1-rc2-24027",
+ "System.Runtime": "4.1.0-rc2-24027",
+ "System.Runtime.Extensions": "4.1.0-rc2-24027",
+ "System.Text.RegularExpressions": "4.0.12-rc2-24027",
+ "System.Threading": "4.0.11-rc2-24027"
}
},
- "dotnet5.4": {
- "compilationOptions": {
- "define": [ "ASYNCLOCAL", "PROCESS", "USERNAMEFROMENV" ]
-
+ "netstandard1.3": {
+ "buildOptions": {
+ "define": [ "ASYNCLOCAL" ]
},
"dependencies": {
- "Microsoft.CSharp": "4.0.1-beta-23516",
- "System.Collections.Concurrent": "4.0.11-beta-23516",
- "System.Console": "4.0.0-beta-23516",
- "System.Diagnostics.Process": "4.1.0-beta-23516",
- "System.Diagnostics.TraceSource": "4.0.0-beta-23516",
- "System.Globalization": "4.0.11-beta-23516",
- "System.IO": "4.0.11-beta-23516",
- "System.IO.FileSystem": "4.0.1-beta-23516",
- "System.Linq": "4.0.1-beta-23516",
- "System.Reflection.Extensions": "4.0.1-beta-23516",
- "System.Runtime.Extensions": "4.0.11-beta-23516",
- "System.Runtime.Serialization.Primitives": "4.1.0-beta-23516",
- "System.Text.RegularExpressions": "4.0.11-beta-23516",
- "System.Threading": "4.0.11-beta-23516",
- "System.Threading.Thread": "4.0.0-beta-23516"
+ "Microsoft.CSharp": "4.0.1-rc2-24027",
+ "System.Collections": "4.0.11-rc2-24027",
+ "System.Dynamic.Runtime": "4.0.11-rc2-24027",
+ "System.Globalization": "4.0.11-rc2-24027",
+ "System.Linq": "4.1.0-rc2-24027",
+ "System.Reflection": "4.1.0-rc2-24027",
+ "System.Reflection.Extensions": "4.0.1-rc2-24027",
+ "System.Runtime": "4.1.0-rc2-24027",
+ "System.Runtime.Extensions": "4.1.0-rc2-24027",
+ "System.Text.RegularExpressions": "4.0.12-rc2-24027",
+ "System.Threading": "4.0.11-rc2-24027"
}
}
}
diff --git a/test/Serilog.Tests/Context/LogContextTests.cs b/test/Serilog.Tests/Context/LogContextTests.cs
index efcf71422..418fa74ff 100644
--- a/test/Serilog.Tests/Context/LogContextTests.cs
+++ b/test/Serilog.Tests/Context/LogContextTests.cs
@@ -19,8 +19,6 @@ public LogContextTests()
{
#if REMOTING
LogContext.PermitCrossAppDomainCalls = false;
-#endif
-#if !ASYNCLOCAL
CallContext.LogicalSetData(typeof(LogContext).FullName, null);
#endif
}
@@ -219,10 +217,10 @@ public class RemotelyCallable : MarshalByRefObject
{
public bool IsCallable()
{
- var sw = new StringWriter();
+ var sw = new StringSink(outputTemplate: "{Anything}{Number}");
var log = new LoggerConfiguration()
- .WriteTo.TextWriter(sw, outputTemplate: "{Anything}{Number}")
+ .WriteTo.Sink(sw)
.Enrich.FromLogContext()
.CreateLogger();
diff --git a/test/Serilog.Tests/Core/LoggerTests.cs b/test/Serilog.Tests/Core/LoggerTests.cs
index 9c88d0d78..536f9e3f5 100644
--- a/test/Serilog.Tests/Core/LoggerTests.cs
+++ b/test/Serilog.Tests/Core/LoggerTests.cs
@@ -17,7 +17,7 @@ public void AnExceptionThrownByAnEnricherIsNotPropagated()
var thrown = false;
var l = new LoggerConfiguration()
- .WriteTo.TextWriter(new StringWriter())
+ .WriteTo.Sink(new StringSink())
.Enrich.With(new DelegatingEnricher((le, pf) => {
thrown = true;
throw new Exception("No go, pal."); }))
diff --git a/test/Serilog.Tests/Core/MessageTemplateTests.cs b/test/Serilog.Tests/Core/MessageTemplateTests.cs
index 319c2b2fb..804e4bc22 100644
--- a/test/Serilog.Tests/Core/MessageTemplateTests.cs
+++ b/test/Serilog.Tests/Core/MessageTemplateTests.cs
@@ -1,6 +1,4 @@
-#if INTERNAL_TESTS
-
-using System;
+using System;
using System.Globalization;
using System.IO;
using System.Linq;
@@ -167,5 +165,3 @@ public void MissingPositionalParametersRenderAsTextLikeStandardFormats()
}
}
}
-
-#endif
diff --git a/test/Serilog.Tests/Core/SafeAggregateSinkTests.cs b/test/Serilog.Tests/Core/SafeAggregateSinkTests.cs
index 97468175e..02c4b90aa 100644
--- a/test/Serilog.Tests/Core/SafeAggregateSinkTests.cs
+++ b/test/Serilog.Tests/Core/SafeAggregateSinkTests.cs
@@ -1,6 +1,4 @@
-#if INTERNAL_TESTS
-
-using System;
+using System;
using Xunit;
using Serilog.Core.Sinks;
using Serilog.Tests.Support;
@@ -41,5 +39,3 @@ public void WhenASinkThrowsOtherSinksAreStillInvoked()
}
}
}
-
-#endif
diff --git a/test/Serilog.Tests/Events/LogEventPropertyValueTests.cs b/test/Serilog.Tests/Events/LogEventPropertyValueTests.cs
index 3fad28e84..8d5ee101f 100644
--- a/test/Serilog.Tests/Events/LogEventPropertyValueTests.cs
+++ b/test/Serilog.Tests/Events/LogEventPropertyValueTests.cs
@@ -12,8 +12,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#if INTERNAL_TESTS
-
using System;
using System.Globalization;
using System.Linq;
@@ -77,5 +75,3 @@ public void WhenDestructuringAKnownLiteralTypeIsScalar()
}
}
}
-
-#endif
diff --git a/test/Serilog.Tests/LogTests.cs b/test/Serilog.Tests/LogTests.cs
index 34a5a4d20..c2426f213 100644
--- a/test/Serilog.Tests/LogTests.cs
+++ b/test/Serilog.Tests/LogTests.cs
@@ -1,6 +1,4 @@
-#if INTERNAL_TESTS
-
-using System;
+using System;
using Xunit;
using Serilog.Core.Pipeline;
using Serilog.Tests.Support;
@@ -47,5 +45,3 @@ private static IDisposable SwappedLogger(ILogger logger)
}
}
}
-
-#endif
diff --git a/test/Serilog.Tests/LoggerConfigurationTests.cs b/test/Serilog.Tests/LoggerConfigurationTests.cs
index 92e148754..57b4213da 100644
--- a/test/Serilog.Tests/LoggerConfigurationTests.cs
+++ b/test/Serilog.Tests/LoggerConfigurationTests.cs
@@ -60,8 +60,6 @@ public void DisposableSinksAreNotDisposedAlongWithContextualLoggers()
Assert.False(sink.IsDisposed);
}
-#if INTERNAL_TESTS
-
[Fact]
public void AFilterPreventsMatchedEventsFromPassingToTheSink()
{
@@ -81,8 +79,6 @@ public void AFilterPreventsMatchedEventsFromPassingToTheSink()
Assert.True(events.Contains(included));
}
-#endif
-
// ReSharper disable UnusedMember.Local, UnusedAutoPropertyAccessor.Local
class AB
{
@@ -241,7 +237,7 @@ public void EnrichersExecuteInConfigurationOrder()
var enrichedPropertySeen = false;
var logger = new LoggerConfiguration()
- .WriteTo.TextWriter(new StringWriter())
+ .WriteTo.Sink(new StringSink())
.Enrich.With(new DelegatingEnricher((e, f) => e.AddPropertyIfAbsent(property)))
.Enrich.With(new DelegatingEnricher((e, f) => enrichedPropertySeen = e.Properties.ContainsKey(property.Name)))
.CreateLogger();
diff --git a/test/Serilog.Tests/Parameters/PropertyValueConverterTests.cs b/test/Serilog.Tests/Parameters/PropertyValueConverterTests.cs
index f935855b4..438011981 100644
--- a/test/Serilog.Tests/Parameters/PropertyValueConverterTests.cs
+++ b/test/Serilog.Tests/Parameters/PropertyValueConverterTests.cs
@@ -1,6 +1,4 @@
-#if INTERNAL_TESTS
-
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using Xunit;
@@ -170,6 +168,7 @@ public void SurvivesDestructuringASystemType()
Assert.Equal(typeof(string), pv.LiteralValue());
}
+#if GETCURRENTMETHOD
[Fact]
public void SurvivesDestructuringMethodBase()
{
@@ -177,6 +176,7 @@ public void SurvivesDestructuringMethodBase()
var pv = _converter.CreatePropertyValue(theMethod, Destructuring.Destructure);
Assert.Equal(theMethod, pv.LiteralValue());
}
+#endif
public class BaseWithProps
{
@@ -255,4 +255,3 @@ public void CSharpAnonymousTypesAreRecognizedWhenDestructuring()
}
}
-#endif
diff --git a/test/Serilog.Tests/Serilog.Tests.xproj b/test/Serilog.Tests/Serilog.Tests.xproj
index d98096627..9e7949e5e 100644
--- a/test/Serilog.Tests/Serilog.Tests.xproj
+++ b/test/Serilog.Tests/Serilog.Tests.xproj
@@ -8,21 +8,11 @@
3c2d8e01-5580-426a-bdd9-ec59cd98e618
Serilog.Tests
- ..\..\artifacts\obj\$(MSBuildProjectName)
- ..\..\artifacts\bin\$(MSBuildProjectName)\
+ .\obj
+ .\bin\
2.0
- True
-
- True
-
-
- True
-
-
-
-
-
+
\ No newline at end of file
diff --git a/test/Serilog.Tests/Settings/KeyValuePairSettingsTests.cs b/test/Serilog.Tests/Settings/KeyValuePairSettingsTests.cs
index fac2e0f3f..e81b69146 100644
--- a/test/Serilog.Tests/Settings/KeyValuePairSettingsTests.cs
+++ b/test/Serilog.Tests/Settings/KeyValuePairSettingsTests.cs
@@ -4,9 +4,9 @@
using Xunit;
using Serilog.Events;
using Serilog.Settings.KeyValuePairs;
-using Serilog.Sinks.RollingFile;
using Serilog.Tests.Support;
using Serilog.Enrichers;
+using TestDummies;
namespace Serilog.Tests.AppSettings.Tests
{
@@ -63,7 +63,7 @@ public void FindsEventEnrichersWithinAnAssembly()
.FindEventEnricherConfigurationMethods(new[]
{
typeof(Log).GetTypeInfo().Assembly,
- typeof(ThreadIdEnricher).GetTypeInfo().Assembly
+ typeof(DummyThreadIdEnricher).GetTypeInfo().Assembly
})
.Select(m => m.Name)
.Distinct()
@@ -71,7 +71,7 @@ public void FindsEventEnrichersWithinAnAssembly()
Assert.True(eventEnrichers.Contains("FromLogContext"));
- Assert.True(eventEnrichers.Contains("WithThreadId"));
+ Assert.True(eventEnrichers.Contains("WithDummyThreadId"));
}
[Fact]
diff --git a/test/Serilog.Tests/Support/StringSink.cs b/test/Serilog.Tests/Support/StringSink.cs
new file mode 100644
index 000000000..e7102af69
--- /dev/null
+++ b/test/Serilog.Tests/Support/StringSink.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Globalization;
+using System.IO;
+using Serilog.Core;
+using Serilog.Events;
+using Serilog.Formatting;
+using Serilog.Formatting.Display;
+
+namespace Serilog.Tests.Support
+{
+ public class StringSink : ILogEventSink
+ {
+ readonly StringWriter _sw = new StringWriter();
+ readonly ITextFormatter _formatter;
+
+ const string DefaultOutputTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}";
+
+ public StringSink(string outputTemplate = DefaultOutputTemplate)
+ {
+ _formatter = new MessageTemplateTextFormatter(outputTemplate, CultureInfo.InvariantCulture);
+ }
+
+ public void Emit(LogEvent logEvent)
+ {
+ _formatter.Format(logEvent, _sw);
+ }
+
+ public override string ToString()
+ {
+ return _sw.ToString();
+ }
+ }
+}
diff --git a/test/Serilog.Tests/project.json b/test/Serilog.Tests/project.json
index 3204861e8..228743b5d 100644
--- a/test/Serilog.Tests/project.json
+++ b/test/Serilog.Tests/project.json
@@ -1,54 +1,33 @@
{
- "version": "2.0.0-beta-*",
- "commands": {
- "test": "xunit.runner.dnx",
- "test-dnxcore50": "xunit.runner.dnx"
- },
+ "version": "2.0.0-rc-*",
+ "testRunner": "xunit",
"dependencies": {
- "Newtonsoft.Json": "7.0.1",
- "Rx-Main": "2.2.5",
"Serilog": { "target": "project" },
+ "TestDummies": { "target": "project" },
"xunit": "2.1.0",
- "xunit.runner.visualstudio": "2.1.0",
- "xunit.runner.dnx": "2.1.0-rc1-build204",
- "Serilog.Sinks.TextWriter": "2.0.0-beta-519",
- "Serilog.Sinks.RollingFile": "2.0.0-beta-519",
- "Serilog.Sinks.PeriodicBatching": "2.0.0-beta-519",
- "Serilog.Sinks.Observable": "2.0.0-beta-519",
- "Serilog.Enrichers.Environment": "2.0.0-beta-519",
- "Serilog.Enrichers.Process": "2.0.0-beta-519",
- "Serilog.Enrichers.Thread": "2.0.0-beta-519"
-
+ "dotnet-test-xunit": "1.0.0-rc2-build10015"
},
- "compilationOptions": {
+ "buildOptions": {
"keyFile": "../../assets/Serilog.snk"
},
"frameworks": {
- "dnx452": {
- "compilationOptions": {
- "define": [ "PROCESS", "FILE_IO", "PERIODIC_BATCHING", "INTERNAL_TESTS", "REMOTING", "APPDOMAIN" ]
+ "net4.5.2": {
+ "buildOptions": {
+ "define": [ "REMOTING", "GETCURRENTMETHOD" ]
}
},
- "dnxcore50": {
- "compilationOptions": {
- "define": [ "ASYNCLOCAL", "FILE_IO", "PERIODIC_BATCHING" ]
- },
+ "netcoreapp1.0": {
+ "define": [ "ASYNCLOCAL" ],
"dependencies": {
- "Microsoft.CSharp": "4.0.1-beta-23516",
- "System.Collections": "4.0.11-beta-23516",
- "System.Console": "4.0.0-beta-23516",
- "System.Diagnostics.Process": "4.1.0-beta-23516",
- "System.Diagnostics.TraceSource": "4.0.0-beta-23516",
- "System.Dynamic.Runtime": "4.0.11-beta-23516",
- "System.IO.FileSystem": "4.0.1-beta-23516",
- "System.Linq": "4.0.1-beta-23516",
- "System.Runtime": "4.0.21-beta-23516",
- "System.Runtime.Extensions": "4.0.11-beta-23516",
- "System.Text.RegularExpressions": "4.0.11-beta-23516",
- "System.Threading": "4.0.11-beta-23516",
- "System.Threading.Thread": "4.0.0-beta-23516",
- "System.Threading.Timer": "4.0.1-beta-23516"
- }
+ "Microsoft.NETCore.App": {
+ "type": "platform",
+ "version": "1.0.0-rc2-3002702"
+ }
+ },
+ "imports": [
+ "dnxcore50",
+ "portable-net45+win8"
+ ]
}
}
}
diff --git a/test/TestDummies/DummyLoggerConfigurationExtensions.cs b/test/TestDummies/DummyLoggerConfigurationExtensions.cs
new file mode 100644
index 000000000..5728773ab
--- /dev/null
+++ b/test/TestDummies/DummyLoggerConfigurationExtensions.cs
@@ -0,0 +1,13 @@
+using Serilog;
+using Serilog.Configuration;
+
+namespace TestDummies
+{
+ public static class DummyLoggerConfigurationExtensions
+ {
+ public static LoggerConfiguration WithDummyThreadId(this LoggerEnrichmentConfiguration enrich)
+ {
+ return enrich.With(new DummyThreadIdEnricher());
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/TestDummies/DummyThreadIdEnricher.cs b/test/TestDummies/DummyThreadIdEnricher.cs
new file mode 100644
index 000000000..142c15282
--- /dev/null
+++ b/test/TestDummies/DummyThreadIdEnricher.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Serilog.Core;
+using Serilog.Events;
+
+namespace TestDummies
+{
+ public class DummyThreadIdEnricher : ILogEventEnricher
+ {
+ public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
+ {
+ }
+ }
+}
diff --git a/test/TestDummies/Properties/AssemblyInfo.cs b/test/TestDummies/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..1f1fc4f85
--- /dev/null
+++ b/test/TestDummies/Properties/AssemblyInfo.cs
@@ -0,0 +1,19 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("TestDummies")]
+[assembly: AssemblyTrademark("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("2bb12ce5-c867-43bd-ae5d-253fe3248c7f")]
diff --git a/test/TestDummies/TestDummies.xproj b/test/TestDummies/TestDummies.xproj
new file mode 100644
index 000000000..491d7aa12
--- /dev/null
+++ b/test/TestDummies/TestDummies.xproj
@@ -0,0 +1,21 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ 2bb12ce5-c867-43bd-ae5d-253fe3248c7f
+ TestDummies
+ .\obj
+ .\bin\
+ v4.5.2
+
+
+
+ 2.0
+
+
+
diff --git a/test/TestDummies/project.json b/test/TestDummies/project.json
new file mode 100644
index 000000000..66858cb93
--- /dev/null
+++ b/test/TestDummies/project.json
@@ -0,0 +1,18 @@
+{
+ "version": "1.0.0-*",
+
+ "buildOptions": {
+ "keyFile": "../../assets/Serilog.snk"
+ },
+
+ "dependencies": {
+ "NETStandard.Library": "1.5.0-rc2-24027",
+ "Serilog": { "target": "project" }
+ },
+
+ "frameworks": {
+ "netstandard1.2": {
+ "imports": "dnxcore50"
+ }
+ }
+}