34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
|
using System;
|
|||
|
using Microsoft.Extensions.DependencyInjection;
|
|||
|
using Microsoft.Extensions.Logging;
|
|||
|
using NLog.Extensions.Logging;
|
|||
|
|
|||
|
namespace Core.Helper {
|
|||
|
public static class ServiceHelper {
|
|||
|
|
|||
|
public static IServiceProvider BuildLoggerService() {
|
|||
|
return ServiceHelper.BuildLoggerService("");
|
|||
|
}
|
|||
|
|
|||
|
public static IServiceProvider BuildLoggerService(string basePath) {
|
|||
|
ServiceCollection services = new ServiceCollection();
|
|||
|
|
|||
|
services.AddTransient<LogHelper>();
|
|||
|
|
|||
|
services.AddSingleton<ILoggerFactory, LoggerFactory>();
|
|||
|
services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
|
|||
|
services.AddLogging((builder) => builder.SetMinimumLevel(LogLevel.Trace));
|
|||
|
|
|||
|
ServiceProvider serviceProvider = services.BuildServiceProvider();
|
|||
|
|
|||
|
ILoggerFactory loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
|
|||
|
|
|||
|
//configure NLog
|
|||
|
loggerFactory.AddNLog(new NLogProviderOptions { CaptureMessageTemplates = true, CaptureMessageProperties = true });
|
|||
|
loggerFactory.ConfigureNLog(basePath + "nlog.config");
|
|||
|
|
|||
|
return serviceProvider;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|