diff --git a/.editorconfig b/.editorconfig
index f76c08a..33626b2 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,5 +1,10 @@
-root=true
+root = true
[*]
+trim_trailing_whitespace = true
+insert_final_newline = true
indent_style = space
indent_size = 4
+
+[*.{csproj,json,config,yml}]
+indent_size = 2
\ No newline at end of file
diff --git a/Build.ps1 b/Build.ps1
index 7c5a85f..696e773 100644
--- a/Build.ps1
+++ b/Build.ps1
@@ -12,38 +12,47 @@ if(Test-Path .\artifacts) {
$branch = @{ $true = $env:APPVEYOR_REPO_BRANCH; $false = $(git symbolic-ref --short -q HEAD) }[$env:APPVEYOR_REPO_BRANCH -ne $NULL];
$revision = @{ $true = "{0:00000}" -f [convert]::ToInt32("0" + $env:APPVEYOR_BUILD_NUMBER, 10); $false = "local" }[$env:APPVEYOR_BUILD_NUMBER -ne $NULL];
$suffix = @{ $true = ""; $false = "$($branch.Substring(0, [math]::Min(10,$branch.Length)))-$revision"}[$branch -eq "master" -and $revision -ne "local"]
+$commitHash = $(git rev-parse --short HEAD)
+$buildSuffix = @{ $true = "$($suffix)-$($commitHash)"; $false = "$($branch)-$($commitHash)" }[$suffix -ne ""]
-echo "build: Version suffix is $suffix"
+echo "build: Package version suffix is $suffix"
+echo "build: Build version suffix is $buildSuffix"
foreach ($src in ls src/*) {
Push-Location $src
echo "build: Packaging project in $src"
- & dotnet pack -c Release -o ..\..\artifacts --version-suffix=$suffix
+ & dotnet build -c Release --version-suffix=$buildSuffix
+
+ if($suffix) {
+ & dotnet pack -c Release --include-source --no-build -o ..\..\artifacts --version-suffix=$suffix
+ } else {
+ & dotnet pack -c Release --include-source --no-build -o ..\..\artifacts
+ }
if($LASTEXITCODE -ne 0) { exit 1 }
Pop-Location
}
-foreach ($test in ls test/*.PerformanceTests) {
+foreach ($test in ls test/*.Tests) {
Push-Location $test
- echo "build: Building performance test project in $test"
+ echo "build: Testing project in $test"
- & dotnet build -c Release
- if($LASTEXITCODE -ne 0) { exit 2 }
+ & dotnet test -c Release
+ if($LASTEXITCODE -ne 0) { exit 3 }
Pop-Location
}
-foreach ($test in ls test/*.Tests) {
+foreach ($test in ls test/*.PerformanceTests) {
Push-Location $test
- echo "build: Testing project in $test"
+ echo "build: Building performance test project in $test"
- & dotnet test -c Release
- if($LASTEXITCODE -ne 0) { exit 3 }
+ & dotnet build -c Release
+ if($LASTEXITCODE -ne 0) { exit 2 }
Pop-Location
}
diff --git a/README.md b/README.md
index 59c8168..e251ce2 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@ Log.Logger = new LoggerConfiguration()
.Subscribe())
.CreateLogger();
-Log.Infomation("Hello, observers!");
+Log.Information("Hello, observers!");
Log.CloseAndFlush();
```
diff --git a/appveyor.yml b/appveyor.yml
index 19d0d28..7df8c2f 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,16 +1,10 @@
version: '{build}'
skip_tags: true
-image: Visual Studio 2015
+image: Visual Studio 2017
configuration: Release
-install:
- - ps: mkdir -Force ".\build\" | Out-Null
- - ps: Invoke-WebRequest "https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0-preview2/scripts/obtain/dotnet-install.ps1" -OutFile ".\build\installcli.ps1"
- - ps: $env:DOTNET_INSTALL_DIR = "$pwd\.dotnetcli"
- - ps: '& .\build\installcli.ps1 -InstallDir "$env:DOTNET_INSTALL_DIR" -NoPath -Version 1.0.0-preview2-003121'
- - ps: $env:Path = "$env:DOTNET_INSTALL_DIR;$env:Path"
+test: off
build_script:
- ps: ./Build.ps1
-test: off
artifacts:
- path: artifacts/Serilog.*.nupkg
deploy:
diff --git a/global.json b/global.json
deleted file mode 100644
index a2b2a41..0000000
--- a/global.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "projects": [ "src", "test" ],
- "sdk": {
- "version": "1.0.0-preview2-003121"
- }
-}
diff --git a/serilog-sinks-observable.sln b/serilog-sinks-observable.sln
index 08f6583..a723ba0 100644
--- a/serilog-sinks-observable.sln
+++ b/serilog-sinks-observable.sln
@@ -1,26 +1,27 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio 15
+VisualStudioVersion = 15.0.27004.2002
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{037440DE-440B-4129-9F7A-09B42D00397E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "assets", "assets", "{E9D1B5E1-DEB9-4A04-8BAB-24EC7240ADAF}"
ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ .gitattributes = .gitattributes
+ .gitignore = .gitignore
appveyor.yml = appveyor.yml
Build.ps1 = Build.ps1
CHANGES.md = CHANGES.md
- global.json = global.json
- NuGet.Config = NuGet.Config
+ LICENSE = LICENSE
README.md = README.md
assets\Serilog.snk = assets\Serilog.snk
EndProjectSection
EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Serilog.Sinks.Observable", "src\Serilog.Sinks.Observable\Serilog.Sinks.Observable.xproj", "{8D6C0BB9-D04D-49B6-9043-4A776AD275D5}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{9D8490A7-A075-4E53-A5F2-A960CF4DB3E7}"
EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Serilog.Tests", "test\Serilog.Tests\Serilog.Tests.xproj", "{3C2D8E01-5580-426A-BDD9-EC59CD98E618}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Serilog.Sinks.Observable", "src\Serilog.Sinks.Observable\Serilog.Sinks.Observable.csproj", "{727C1498-20A8-4C1A-BE5F-8AB762F920DC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Serilog.Tests", "test\Serilog.Tests\Serilog.Tests.csproj", "{C88A987D-3E79-481C-9DD7-441371EAF9E6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -28,20 +29,23 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8D6C0BB9-D04D-49B6-9043-4A776AD275D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8D6C0BB9-D04D-49B6-9043-4A776AD275D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8D6C0BB9-D04D-49B6-9043-4A776AD275D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8D6C0BB9-D04D-49B6-9043-4A776AD275D5}.Release|Any CPU.Build.0 = Release|Any CPU
- {3C2D8E01-5580-426A-BDD9-EC59CD98E618}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {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
+ {727C1498-20A8-4C1A-BE5F-8AB762F920DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {727C1498-20A8-4C1A-BE5F-8AB762F920DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {727C1498-20A8-4C1A-BE5F-8AB762F920DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {727C1498-20A8-4C1A-BE5F-8AB762F920DC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C88A987D-3E79-481C-9DD7-441371EAF9E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C88A987D-3E79-481C-9DD7-441371EAF9E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C88A987D-3E79-481C-9DD7-441371EAF9E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C88A987D-3E79-481C-9DD7-441371EAF9E6}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {8D6C0BB9-D04D-49B6-9043-4A776AD275D5} = {037440DE-440B-4129-9F7A-09B42D00397E}
- {3C2D8E01-5580-426A-BDD9-EC59CD98E618} = {9D8490A7-A075-4E53-A5F2-A960CF4DB3E7}
+ {727C1498-20A8-4C1A-BE5F-8AB762F920DC} = {037440DE-440B-4129-9F7A-09B42D00397E}
+ {C88A987D-3E79-481C-9DD7-441371EAF9E6} = {9D8490A7-A075-4E53-A5F2-A960CF4DB3E7}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {F7520405-4472-4800-B649-95134A0863F4}
EndGlobalSection
EndGlobal
diff --git a/src/Serilog.Sinks.Observable/Serilog.Sinks.Observable.csproj b/src/Serilog.Sinks.Observable/Serilog.Sinks.Observable.csproj
new file mode 100644
index 0000000..a0c5adc
--- /dev/null
+++ b/src/Serilog.Sinks.Observable/Serilog.Sinks.Observable.csproj
@@ -0,0 +1,22 @@
+
+
+
+ 2.0.2
+ net45;netstandard1.0
+ Serilog.Sinks.Observable
+ ../../assets/Serilog.snk
+ true
+ true
+ Serilog.Sinks.Observable
+ serilog;observable;reactive
+ http://serilog.net/images/serilog-sink-nuget.png
+ http://serilog.net
+ http://www.apache.org/licenses/LICENSE-2.0
+ false
+
+
+
+
+
+
+
diff --git a/src/Serilog.Sinks.Observable/Serilog.Sinks.Observable.xproj b/src/Serilog.Sinks.Observable/Serilog.Sinks.Observable.xproj
deleted file mode 100644
index 52bb381..0000000
--- a/src/Serilog.Sinks.Observable/Serilog.Sinks.Observable.xproj
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- 14.0
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
-
-
- 8d6c0bb9-d04d-49b6-9043-4a776ad275d5
- Serilog
- ..\..\artifacts\obj\$(MSBuildProjectName)
- .\bin\
-
-
- 2.0
-
-
-
\ No newline at end of file
diff --git a/src/Serilog.Sinks.Observable/Sinks/Observable/ObservableSink.cs b/src/Serilog.Sinks.Observable/Sinks/Observable/ObservableSink.cs
index c5c874a..aa03f7d 100644
--- a/src/Serilog.Sinks.Observable/Sinks/Observable/ObservableSink.cs
+++ b/src/Serilog.Sinks.Observable/Sinks/Observable/ObservableSink.cs
@@ -1,4 +1,4 @@
-// Copyright 2013-2016 Serilog Contributors
+// Copyright 2013-2017 Serilog Contributors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -38,10 +38,8 @@ sealed class Unsubscriber : IDisposable
public Unsubscriber(ObservableSink sink, IObserver observer)
{
- if (sink == null) throw new ArgumentNullException(nameof(sink));
- if (observer == null) throw new ArgumentNullException(nameof(observer));
- _sink = sink;
- _observer = observer;
+ _sink = sink ?? throw new ArgumentNullException(nameof(sink));
+ _observer = observer ?? throw new ArgumentNullException(nameof(observer));
}
public void Dispose()
@@ -124,11 +122,12 @@ public void Dispose()
{
if (_disposed) return;
- _disposed = true;
foreach (var observer in _observers)
{
observer.OnCompleted();
}
+
+ _disposed = true;
}
}
}
diff --git a/src/Serilog.Sinks.Observable/project.json b/src/Serilog.Sinks.Observable/project.json
deleted file mode 100644
index fad2b23..0000000
--- a/src/Serilog.Sinks.Observable/project.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "version": "2.0.1",
- "packOptions": {
- "description": "Write Serilog events to observers (Rx) through an IObservable.",
- "authors": [ "Serilog Contributors" ],
- "tags": [ "serilog", "observable", "reactive" ],
- "projectUrl": "http://serilog.net",
- "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0",
- "iconUrl": "http://serilog.net/images/serilog-sink-nuget.png"
- },
- "buildOptions": {
- "keyFile": "../../assets/Serilog.snk"
- },
- "dependencies": {
- "Serilog": "2.0.0"
- },
- "frameworks": {
- "net45": {
- },
- "netstandard1.1": {
- "dependencies": {
- "System.Collections.Concurrent": "4.0.12"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/test/Serilog.Tests/Serilog.Tests.csproj b/test/Serilog.Tests/Serilog.Tests.csproj
new file mode 100644
index 0000000..d4540f3
--- /dev/null
+++ b/test/Serilog.Tests/Serilog.Tests.csproj
@@ -0,0 +1,34 @@
+
+
+
+ net452
+ ../../assets/Serilog.snk
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/Serilog.Tests/Serilog.Tests.xproj b/test/Serilog.Tests/Serilog.Tests.xproj
deleted file mode 100644
index ea9248f..0000000
--- a/test/Serilog.Tests/Serilog.Tests.xproj
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
- 14.0
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
-
-
- 3c2d8e01-5580-426a-bdd9-ec59cd98e618
- Serilog.Tests
- ..\..\artifacts\obj\$(MSBuildProjectName)
- .\bin\
-
-
- 2.0
- True
-
-
- True
-
-
- True
-
-
-
-
-
-
\ No newline at end of file
diff --git a/test/Serilog.Tests/Sinks/Observable/ObservableSinkTests.cs b/test/Serilog.Tests/Sinks/Observable/ObservableSinkTests.cs
index 3ad1379..b3e64a3 100644
--- a/test/Serilog.Tests/Sinks/Observable/ObservableSinkTests.cs
+++ b/test/Serilog.Tests/Sinks/Observable/ObservableSinkTests.cs
@@ -12,13 +12,15 @@ public void EventsAreWrittenToObservers()
{
var eventSeen = false;
- var log = new LoggerConfiguration()
+ using (var log = new LoggerConfiguration()
.WriteTo.Observers(events => events
.Do(evt => { eventSeen = true; })
.Subscribe())
- .CreateLogger();
+ .CreateLogger())
+ {
+ log.Write(Some.InformationEvent());
+ }
- log.Write(Some.InformationEvent());
Assert.True(eventSeen);
}
}
diff --git a/test/Serilog.Tests/project.json b/test/Serilog.Tests/project.json
deleted file mode 100644
index 58c38b8..0000000
--- a/test/Serilog.Tests/project.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "testRunner": "xunit",
- "dependencies": {
- "Rx-Main": "2.2.5",
- "Serilog": "2.0.0",
- "xunit": "2.2.0-*",
- "dotnet-test-xunit": "2.2.0-preview2-build1029",
- "Serilog.Sinks.Observable": { "target": "project" }
- },
- "frameworks": {
- "net4.5.2": {
- "buildOptions": {
- "keyFile": "../../assets/Serilog.snk",
- "define": [ "APPSETTINGS", "PROCESS", "FILE_IO", "PERIODIC_BATCHING", "INTERNAL_TESTS", "REMOTING", "APPDOMAIN" ]
- },
- "frameworkAssemblies": {
- "System.Configuration": ""
- }
- }
- }
-}