-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
147 additions
and
157 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -348,3 +348,6 @@ MigrationBackup/ | |
|
||
# Ionide (cross platform F# VS Code tools) working folder | ||
.ionide/ | ||
|
||
# JetBrains | ||
.idea/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,32 @@ | ||
using System.Net.Sockets; | ||
using Microsoft.Extensions.Configuration; | ||
|
||
namespace App.Extensions | ||
namespace App.Extensions; | ||
|
||
public static class ConfigurationExtensions | ||
{ | ||
public static class ConfigurationExtensions | ||
public static string GetOutputTemplate(this IConfiguration configuration) | ||
{ | ||
public static string GetOutputTemplate(this IConfiguration configuration) | ||
{ | ||
return configuration["Serilog:WriteTo:0:Args:outputTemplate"]; | ||
} | ||
return configuration["Serilog:WriteTo:0:Args:outputTemplate"]; | ||
} | ||
|
||
public static string GetFilePath(this IConfiguration configuration) | ||
{ | ||
return configuration["Serilog:WriteTo:1:Args:path"]; | ||
} | ||
public static string GetFilePath(this IConfiguration configuration) | ||
{ | ||
return configuration["Serilog:WriteTo:1:Args:path"]; | ||
} | ||
|
||
public static int GetRemotePort(this IConfiguration configuration) | ||
{ | ||
return configuration.GetValue<int>("Serilog:WriteTo:2:Args:remotePort"); | ||
} | ||
public static int GetRemotePort(this IConfiguration configuration) | ||
{ | ||
return configuration.GetValue<int>("Serilog:WriteTo:2:Args:remotePort"); | ||
} | ||
|
||
public static string GetRemoteAddress(this IConfiguration configuration) | ||
{ | ||
return configuration["Serilog:WriteTo:2:Args:remoteAddress"]; | ||
} | ||
public static string GetRemoteAddress(this IConfiguration configuration) | ||
{ | ||
return configuration["Serilog:WriteTo:2:Args:remoteAddress"]; | ||
} | ||
|
||
public static AddressFamily GetAddressFamily(this IConfiguration configuration) | ||
{ | ||
return configuration.GetValue<AddressFamily>("Serilog:WriteTo:2:Args:family"); | ||
} | ||
public static AddressFamily GetAddressFamily(this IConfiguration configuration) | ||
{ | ||
return configuration.GetValue<AddressFamily>("Serilog:WriteTo:2:Args:family"); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
using Microsoft.Extensions.DependencyInjection; | ||
using Microsoft.Extensions.Logging; | ||
|
||
namespace App.Extensions; | ||
|
||
public static class LoggingBuilderExtensions | ||
{ | ||
public static void AddDefaultLogger(this ILoggingBuilder loggingBuilder) | ||
{ | ||
var categoryName = typeof(Program).Namespace!; | ||
var services = loggingBuilder.Services; | ||
services.AddSingleton(serviceProvider => | ||
{ | ||
var loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>(); | ||
return loggerFactory.CreateLogger(categoryName); | ||
}); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,61 +1,35 @@ | ||
using System; | ||
using System.IO; | ||
using System.Threading.Tasks; | ||
using App.Extensions; | ||
using App.Services; | ||
using Microsoft.Extensions.Configuration; | ||
using Microsoft.Extensions.DependencyInjection; | ||
using Microsoft.Extensions.Hosting; | ||
using Microsoft.Extensions.Logging; | ||
|
||
namespace App | ||
namespace App; | ||
|
||
public static class Program | ||
{ | ||
public static class Program | ||
public static async Task Main(string[] args) | ||
{ | ||
public static async Task Main(string[] args) | ||
{ | ||
using (var host = CreateHostBuilder(args).Build()) | ||
{ | ||
var service = host.Services.GetRequiredService<IDummyService>(); | ||
await service.DoNothingAsync(); | ||
} | ||
|
||
Console.WriteLine("Press any key to exit !"); | ||
Console.ReadKey(); | ||
} | ||
|
||
private static IHostBuilder CreateHostBuilder(string[] args) => | ||
Host.CreateDefaultBuilder(args) | ||
.ConfigureAppConfiguration((_, config) => | ||
{ | ||
config.AddCommandLine(args); | ||
config.AddEnvironmentVariables(); | ||
config.SetBasePath(Directory.GetCurrentDirectory()); | ||
var environment = Environment.GetEnvironmentVariable("ENVIRONMENT"); | ||
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); | ||
config.AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true); | ||
}) | ||
.ConfigureServices((_, services) => | ||
{ | ||
services.AddTransient<IDummyService, DummyService>(); | ||
}) | ||
.ConfigureLogging((_, loggingBuilder) => | ||
{ | ||
loggingBuilder.ClearProviders(); | ||
loggingBuilder.AddNonGenericLogger(); | ||
}) | ||
.UseRandomConfigSerilog() | ||
.UseConsoleLifetime(); | ||
using var host = CreateHostBuilder(args).Build(); | ||
var service = host.Services.GetRequiredService<IDummyService>(); | ||
await service.DoNothingAsync(); | ||
Console.WriteLine("Press any key to exit !"); | ||
Console.ReadKey(); | ||
} | ||
|
||
private static void AddNonGenericLogger(this ILoggingBuilder loggingBuilder) | ||
{ | ||
var categoryName = typeof(Program).Namespace; | ||
var services = loggingBuilder.Services; | ||
services.AddSingleton(serviceProvider => | ||
private static IHostBuilder CreateHostBuilder(string[] args) => | ||
Host.CreateDefaultBuilder(args) | ||
.ConfigureServices((_, services) => | ||
{ | ||
var loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>(); | ||
return loggerFactory.CreateLogger(categoryName); | ||
}); | ||
} | ||
} | ||
} | ||
services.AddTransient<IDummyService, DummyService>(); | ||
}) | ||
.ConfigureLogging((_, loggingBuilder) => | ||
{ | ||
loggingBuilder.ClearProviders(); | ||
loggingBuilder.AddDefaultLogger(); | ||
}) | ||
.UseRandomConfigSerilog() | ||
.UseConsoleLifetime(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,34 @@ | ||
using System.Threading.Tasks; | ||
using Microsoft.Extensions.Logging; | ||
|
||
namespace App.Services | ||
namespace App.Services; | ||
|
||
public class DummyService : IDummyService | ||
{ | ||
public class DummyService : IDummyService | ||
{ | ||
private readonly ILogger _logger; | ||
private readonly ILogger _logger; | ||
|
||
public DummyService(ILogger logger) | ||
{ | ||
_logger = logger; | ||
} | ||
public DummyService(ILogger logger) | ||
{ | ||
_logger = logger; | ||
} | ||
|
||
public Task DoNothingAsync() | ||
{ | ||
LogToAllLevels(nameof(DoNothingAsync)); | ||
return Task.CompletedTask; | ||
} | ||
public Task DoNothingAsync() | ||
{ | ||
LogToAllLevels(nameof(DoNothingAsync)); | ||
return Task.CompletedTask; | ||
} | ||
|
||
private void LogToAllLevels(string message) | ||
private void LogToAllLevels(string message) | ||
{ | ||
var scope = $"Scope-{GetType().Namespace}"; | ||
using (_logger.BeginScope(scope)) | ||
{ | ||
var scope = $"Scope-{GetType().Namespace}"; | ||
using (_logger.BeginScope(scope)) | ||
{ | ||
_logger.LogTrace(message); | ||
_logger.LogDebug(message); | ||
_logger.LogInformation(message); | ||
_logger.LogWarning(message); | ||
_logger.LogError(message); | ||
_logger.LogCritical(message); | ||
} | ||
_logger.LogTrace(message); | ||
_logger.LogDebug(message); | ||
_logger.LogInformation(message); | ||
_logger.LogWarning(message); | ||
_logger.LogError(message); | ||
_logger.LogCritical(message); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,8 @@ | ||
using System.Threading.Tasks; | ||
|
||
namespace App.Services | ||
namespace App.Services; | ||
|
||
public interface IDummyService | ||
{ | ||
public interface IDummyService | ||
{ | ||
Task DoNothingAsync(); | ||
} | ||
} | ||
Task DoNothingAsync(); | ||
} |
Oops, something went wrong.