.NET 6 React Web应用日志文件未找到问题求助
.NET6 Web应用日志文件不生成的解决方法
问题原因
.NET6默认仅将日志输出到控制台,不会自动生成本地日志文件,必须手动配置文件日志提供器才能生成日志文件。
解决方案(推荐用Serilog,配置简单功能丰富)
安装NuGet包
在NuGet包管理器中搜索安装Serilog.AspNetCore和Serilog.Sinks.File,或用命令行执行:Install-Package Serilog.AspNetCore Install-Package Serilog.Sinks.File修改Program.cs配置Serilog
using Serilog; var builder = WebApplication.CreateBuilder(args); // 配置Serilog日志系统 Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(builder.Configuration) // 读取appsettings中的日志级别配置 .WriteTo.File( path: "logs/log-.txt", // 日志文件路径,自动创建logs文件夹 rollingInterval: RollingInterval.Day, // 按天滚动生成新日志文件 retainedFileCountLimit: 30 // 保留最近30天的日志 ) .CreateLogger(); // 替换默认日志服务 builder.Host.UseSerilog(); // 原有服务注册代码不变 builder.Services.AddControllersWithViews(); var app = builder.Build(); // 后续请求管道配置保持原样...(可选)统一配置日志级别
在appsettings.json中添加Serilog节点(可替代原有Logging节点,Serilog会优先读取自身配置):"Serilog": { "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } } }
额外注意事项
- 确保控制器被实例化:你的日志代码写在控制器构造函数中,只有第一次请求该控制器时,构造函数才会执行,日志才会被写入。如果从未访问过控制器,不会生成日志文件。
- 检查目录权限:确保程序拥有日志目录的写入权限,避免因权限问题导致日志文件无法生成。
内容的提问来源于stack exchange,提问作者user17450256
相关产品推荐
相关产品推荐

