Skip to content

Commit 86aeba9

Browse files
authored
Merge pull request #85 from gertjvr/dev
Extends ILoggerBuilder this resolves #84
2 parents 7a92b2f + 53a914f commit 86aeba9

File tree

8 files changed

+43
-46
lines changed

8 files changed

+43
-46
lines changed

appveyor.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
version: '{build}'
22
skip_tags: true
3-
image: Visual Studio 2015
3+
image: Visual Studio 2017 Preview
44
configuration: Release
55
install:
66
- ps: mkdir -Force ".\build\" | Out-Null
7-
- ps: Invoke-WebRequest "https://raw.githubusercontent.com/dotnet/cli/release/2.0.0-preview2/scripts/obtain/dotnet-install.ps1" -OutFile ".\build\installcli.ps1"
8-
- ps: $env:DOTNET_INSTALL_DIR = "$pwd\.dotnetcli"
9-
- ps: '& .\build\installcli.ps1 -InstallDir "$env:DOTNET_INSTALL_DIR" -NoPath -Version 2.0.0-preview2-006497'
10-
- ps: $env:Path = "$env:DOTNET_INSTALL_DIR;$env:Path"
7+
#- ps: Invoke-WebRequest "https://raw.githubusercontent.com/dotnet/cli/release/2.0.0-preview2/scripts/obtain/dotnet-install.ps1" -OutFile ".\build\installcli.ps1"
8+
#- ps: $env:DOTNET_INSTALL_DIR = "$pwd\.dotnetcli"
9+
#- ps: '& .\build\installcli.ps1 -InstallDir "$env:DOTNET_INSTALL_DIR" -NoPath -Version 2.0.0-preview2-006497'
10+
#- ps: $env:Path = "$env:DOTNET_INSTALL_DIR;$env:Path"
1111
build_script:
1212
- ps: ./Build.ps1
1313
test: off

samples/Sample/Program.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
using System;
2+
using Microsoft.Extensions.DependencyInjection;
23
using Microsoft.Extensions.Logging;
34
using Serilog;
45

56
namespace Sample
67
{
7-
public static class Program
8+
public class Program
89
{
910
public static void Main(string[] args)
1011
{
@@ -13,18 +14,22 @@ public static void Main(string[] args)
1314
.WriteTo.LiterateConsole()
1415
.CreateLogger();
1516

16-
var logger = new LoggerFactory()
17-
.AddSerilog()
18-
.CreateLogger(typeof(Program).FullName);
17+
var services = new ServiceCollection()
18+
.AddLogging(builder =>
19+
{
20+
builder.AddSerilog();
21+
});
1922

20-
logger.LogInformation("Starting");
23+
var serviceProvider = services.BuildServiceProvider();
24+
// getting the logger using the class's name is conventional
25+
var logger = serviceProvider.GetRequiredService<ILogger<Program>>();
2126

2227
var startTime = DateTimeOffset.UtcNow;
2328
logger.LogInformation(1, "Started at {StartTime} and 0x{Hello:X} is hex of 42", startTime, 42);
2429

2530
try
2631
{
27-
throw new Exception("Boom");
32+
throw new Exception("Boom!");
2833
}
2934
catch (Exception ex)
3035
{

samples/Sample/Sample.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net46;netcoreapp1.0</TargetFrameworks>
4+
<TargetFrameworks>net46;netcoreapp2.0</TargetFrameworks>
55
<AssemblyName>Sample</AssemblyName>
66
<OutputType>Exe</OutputType>
77
<PackageId>Sample</PackageId>
8-
<RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">1.0.4</RuntimeFrameworkVersion>
98
</PropertyGroup>
109

1110
<ItemGroup>
1211
<ProjectReference Include="..\..\src\Serilog.Extensions.Logging\Serilog.Extensions.Logging.csproj" />
1312
</ItemGroup>
1413

1514
<ItemGroup>
15+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0-preview2-final" />
16+
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0-preview2-final" />
1617
<PackageReference Include="Serilog.Sinks.Literate" Version="2.0.0" />
17-
<PackageReference Include="Microsoft.Extensions.Logging" Version="1.0.2" />
1818
</ItemGroup>
1919

20-
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">
20+
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">
2121
</ItemGroup>
2222

2323
<ItemGroup Condition=" '$(TargetFramework)' == 'net46' ">
2424
<Reference Include="System" />
2525
<Reference Include="Microsoft.CSharp" />
2626
</ItemGroup>
2727

28-
</Project>
28+
</Project>

samples/WebSample/Startup.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,19 @@ public Startup(IHostingEnvironment env)
3232
// This method gets called by the runtime. Use this method to add services to the container.
3333
public void ConfigureServices(IServiceCollection services)
3434
{
35+
services.AddLogging(builder =>
36+
{
37+
// Specifying dispose: true closes and flushes the Serilog `Log` class when the app shuts down.
38+
builder.AddSerilog(dispose: true);
39+
});
40+
3541
// Add framework services.
3642
services.AddMvc();
3743
}
3844

3945
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
4046
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
4147
{
42-
// Specifying dispose: true closes and flushes the Serilog `Log` class when the app shuts down.
43-
loggerFactory.AddSerilog(dispose: true);
44-
4548
if (env.IsDevelopment())
4649
{
4750
app.UseDeveloperExceptionPage();

samples/WebSample/WebSample.csproj

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
2-
32
<PropertyGroup>
4-
<TargetFramework>netcoreapp1.0</TargetFramework>
3+
<TargetFramework>netcoreapp2.0</TargetFramework>
54
<PreserveCompilationContext>true</PreserveCompilationContext>
65
<AssemblyName>WebSample</AssemblyName>
76
<OutputType>Exe</OutputType>
87
<PackageId>WebSample</PackageId>
98
<RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion>
109
</PropertyGroup>
11-
1210
<ItemGroup>
1311
<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
1412
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
1513
</None>
1614
</ItemGroup>
17-
1815
<ItemGroup>
1916
<ProjectReference Include="..\..\src\Serilog.Extensions.Logging\Serilog.Extensions.Logging.csproj" />
2017
</ItemGroup>
21-
2218
<ItemGroup>
2319
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.0.2" />
2420
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.0.3" />
@@ -27,7 +23,7 @@
2723
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.2" />
2824
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.0.2" />
2925
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.0.2" />
30-
<PackageReference Include="Microsoft.Extensions.Logging" Version="1.0.2" />
26+
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0-preview2-final" />
3127
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.0.2" />
3228
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.0.2" />
3329
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.0.2" />
@@ -37,14 +33,11 @@
3733
<PackageReference Include="Serilog.Sinks.Literate" Version="2.1.0" />
3834
<PackageReference Include="Serilog.Sinks.Seq" Version="3.2.0" />
3935
</ItemGroup>
40-
4136
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
4237
<Exec Command="bower install" />
4338
<Exec Command="dotnet bundle" />
4439
</Target>
45-
4640
<ItemGroup>
4741
<DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.2.301" />
4842
</ItemGroup>
49-
50-
</Project>
43+
</Project>

serilog-extensions-logging.sln

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
1+
22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 15
44
VisualStudioVersion = 15.0.26114.2
@@ -21,6 +21,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "assets", "assets", "{9C21B9
2121
Build.ps1 = Build.ps1
2222
README.md = README.md
2323
assets\Serilog.snk = assets\Serilog.snk
24+
global.json = global.json
2425
EndProjectSection
2526
EndProject
2627
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebSample", "samples\WebSample\WebSample.csproj", "{486DF7EB-128D-4C79-8B97-9CEFEADDB948}"

src/Serilog.Extensions.Logging/Serilog.Extensions.Logging.csproj

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,24 @@
3030
<Reference Include="System" />
3131
<Reference Include="Microsoft.CSharp" />
3232
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="1.0.0" />
33-
<Compile Remove="SerilogLoggerServicesExtensions.cs" />
33+
<Compile Remove="SerilogLoggingBuilderExtensions.cs" />
3434
</ItemGroup>
3535

3636
<ItemGroup Condition=" '$(TargetFramework)' == 'net46' ">
3737
<Reference Include="System.Runtime" />
3838
<Reference Include="System" />
3939
<Reference Include="Microsoft.CSharp" />
40-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="1.0.0" />
41-
<Compile Remove="SerilogLoggerServicesExtensions.cs" />
40+
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0-preview2-final" />
41+
<PackageReference Include="NETStandard.Library" Version="2.0.0-preview2-25401-01" />
42+
<Compile Remove="SerilogLoggerFactoryExtensions.cs" />
4243
</ItemGroup>
4344

4445
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
4546
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="1.0.0" />
46-
<Compile Remove="SerilogLoggerServicesExtensions.cs" />
47+
<Compile Remove="SerilogLoggingBuilderExtensions.cs" />
4748
</ItemGroup>
4849

4950
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
50-
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="2.0.0-preview2-final" />
51-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.0.0-preview2-final" />
5251
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0-preview2-final" />
5352
<PackageReference Include="NETStandard.Library" Version="2.0.0-preview2-25401-01" />
5453
<Compile Remove="SerilogLoggerFactoryExtensions.cs" />
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,29 @@
11
using System;
2-
using System.ComponentModel;
3-
using Microsoft.Extensions.DependencyInjection;
42
using Microsoft.Extensions.Logging;
53
using Serilog.Extensions.Logging;
64

75

86
namespace Serilog
97
{
108
/// <summary>
11-
/// Extends <see cref="IServiceCollection"/> with Serilog configuration methods.
9+
/// Extends <see cref="ILoggingBuilder"/> with Serilog configuration methods.
1210
/// </summary>
13-
public static class SerilogLoggerServicesExtensions
11+
public static class SerilogLoggingBuilderExtensions
1412
{
1513
/// <summary>
1614
/// Add Serilog to the logging pipeline.
1715
/// </summary>
18-
/// <param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param>
16+
/// <param name="builder">The <see cref="T:Microsoft.Extensions.Logging.ILoggingBuilder" /> to add logging provider to.</param>
1917
/// <param name="logger">The Serilog logger; if not supplied, the static <see cref="Serilog.Log"/> will be used.</param>
2018
/// <param name="dispose">When true, dispose <paramref name="logger"/> when the framework disposes the provider. If the
2119
/// logger is not specified but <paramref name="dispose"/> is true, the <see cref="Log.CloseAndFlush()"/> method will be
2220
/// called on the static <see cref="Log"/> class instead.</param>
2321
/// <returns>The logger factory.</returns>
24-
public static IServiceCollection AddSerilog(this IServiceCollection services, Serilog.ILogger logger = null, bool dispose = false)
22+
public static void AddSerilog(this ILoggingBuilder builder, ILogger logger = null, bool dispose = false)
2523
{
26-
if (services == null) throw new ArgumentNullException(nameof(services));
24+
if (builder == null) throw new ArgumentNullException(nameof(builder));
2725

28-
services.AddLogging(builder => builder.AddProvider(new SerilogLoggerProvider(logger, dispose)));
29-
30-
return services;
26+
builder.AddProvider(new SerilogLoggerProvider(logger, dispose));
3127
}
3228
}
3329
}

0 commit comments

Comments
 (0)