adding nlog to .net core 3.0
将nlog添加到.net core 3.0应用程序会导致
'IServiceCollection' does not contain a definition for
'ConfigureLoggerService' and no accessible extension method
'ConfigureLoggerService' accepting a first argument of type
'IServiceCollection' could be found (are you missing a using directive
or an assembly reference?)
我有Nuget的
1 2 | NLog.Extensions.Logging v1.6.1 NLog.Web.AspNetCore v4.9.0 |
在startup.cs
中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public Startup(IConfiguration config) { LogManager.LoadConfiguration(String.Concat(Directory.GetCurrentDirectory(),"/nlog.config")); Configuration = config; } public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(IISDefaults.AuthenticationScheme); services.AddMvc(); services.AddTransient<ICwopaAgencyFileRepository, CwopaAgencyFileRepository>(); services.AddTransient<ICurrentUserRepository, CurrentUserRepository>(); services.AddTransient<IUserRepository, UserRepository>(); services.AddTransient<IRevenueReceivedRepository, RevenueReceivedRepository>(); services.AddTransient<ILesseeRepository, LesseeRepository>(); services.AddTransient<ITractLesseeJunctionRepository, TractLesseeJunctionRepository>(); services.AddTransient<IPadRepository, PadRepository>(); services.AddTransient<IWellRepository, WellRepository>(); services.AddTransient<IWellOperarationRepository, WellOperationRepository>(); services.AddTransient<IRoyaltyRepository, RoyaltyRepository>(); services.AddTransient<IRoyaltyAdjustmentCardViewModelRepository, RoyaltyAdjustmentCardViewModelRepository>(); services.AddSingleton<ILoggerManager, LoggerService>(); string conString = Configuration["ConnectionStrings:DefaultConnection"]; services.AddDbContext<DataContext>(options => options.UseSqlServer(conString)); services.ConfigureLoggerService(); services.AddMvc(option => option.EnableEndpointRouting = false); services.AddMemoryCache(); services.AddSession(); } |
这是我的csproj文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup Label="Globals"> <SccProjectName>SAK</SccProjectName> <SccProvider>SAK</SccProvider> <SccAuxPath>SAK</SccAuxPath> <SccLocalPath>SAK</SccLocalPath> </PropertyGroup> <PropertyGroup> <TargetFramework>netcoreapp3.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.0.0" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.0.0" /> <PackageReference Include="NLog" Version="4.6.8" /> <PackageReference Include="NLog.Extensions.Logging" Version="1.6.1" /> <PackageReference Include="NLog.Web.AspNetCore" Version="4.9.0" /> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> </ItemGroup> <ItemGroup> <Folder Include="Migrations" /> </ItemGroup> </Project> |
如果您正在学习本教程,请不要忘记添加此方法扩展
1 2 3 4 | public static void ConfigureLoggerService(this IServiceCollection services) { services.AddSingleton<ILoggerManager, LoggerManager>(); } |
因为您在此行中称呼它
1 | services.ConfigureLoggerService(); |
此外,您可以考虑删除它,因为您正在使用接口