Blazor Server中ILoggerFactory与NReco日志无法写入文件求助
Blazor Server中NReco Logger无法写入文件的解决办法
问题核心
你当前代码里,给PersonModel.GlobLogrFctry赋值的是全新的空LoggerFactory实例,这个实例没配置任何NReco文件日志提供者,所以只会输出默认控制台日志,无法写入文件。另外原代码中AddFile配置存在语法错误(多了一个右括号),也会导致文件日志配置不生效。
解决步骤
1. 修正语法错误
先修复Program.cs中AddFile配置的语法问题:
builder.Services.AddLogging(bldr => { bldr.AddFile("testlog.txt", options => // 移除此处多余的右括号 { options.Append = true; options.FileSizeLimitBytes = 20480; options.MaxRollingFiles = 20; }); });
2. 复用已配置的LoggerFactory(推荐)
应用构建完成后,直接从DI容器中获取已经配置好文件日志的ILoggerFactory,赋值给PersonModel的静态属性:
WebApplication app = builder.Build(); // 添加此行代码 PersonModel.GlobLogrFctry = app.Services.GetRequiredService<ILoggerFactory>();
这样PersonModel中创建的ILogger<>就会使用已配置好的文件日志提供者,日志会正常写入文件。
3. 手动配置独立LoggerFactory(备选)
如果需要给PersonModel单独配置LoggerFactory,需在创建时添加相同的文件日志配置:
PersonModel.GlobLogrFctry = LoggerFactory.Create((bldr) => { bldr.AddFile("testlog.txt", options => { options.Append = true; options.FileSizeLimitBytes = 20480; options.MaxRollingFiles = 20; }); });
确保这个工厂包含NReco文件日志配置项,日志才能写入文件。
内容的提问来源于stack exchange,提问作者KhataPlus
相关产品推荐
相关产品推荐

