下面是详细讲解".Net Core使用Logger实现log写入本地文件系统"的完整攻略。
一、前言
在开发过程中,记录系统运行状态和错误信息是非常重要的一件事情,这时候就需要使用log来记录。在.Net Core中,可以通过Logger实现log写入本地文件系统。
二、Logger介绍
Logger是.NET Core框架中的一个基本组件,它允许您轻松地记录指定级别的信息,包括调试、信息、警告和错误等级。Logger中还包含了各种不同的日志记录器提供程序(Logger Provider),这些记录器提供程序允许将日志信息写入各种数据源,包括控制台、文件、数据库、Elasticsearch等。
三、实现步骤
1. 准备工作
首先,我们需要创建一个.Net Core项目。可以使用Visual Studio或是dotnet命令行工具创建项目。
2. 安装依赖
使用NuGet Package Manager安装Microsoft.Extensions.Logging和Microsoft.Extensions.Logging.File包。这两个包分别提供了框架级别的日志记录器和能够将日志信息写入文件的记录器提供程序。
3. 配置Logger
在appsettings.json文件中添加日志相关的配置项。其中LogLevel设置为日志的最小记录级别,FileProvider指定文件写入方式,路径为Log文件夹下的logs.txt文件。
{
"Logging": {
"LogLevel": {
"Default": "Information"
},
"File": {
"Path": ".\\Log\\logs.txt",
"FileSizeLimitBytes": 10000000
},
"FileProvider": {
"type": "Microsoft.Extensions.Logging.File.FileLoggerProvider, Microsoft.Extensions.Logging.File",
"fileName": "logs.txt",
"shared": true,
"includeScopes": false,
"logDirectory": ".\\Log"
}
}
}
4. 注入Logger
在Program.cs文件中,使用CreateDefaultBuilder方法配置WebHostBuilder,然后在Startup.cs文件中注入Logger。
//Program.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConfiguration(loggingConfiguration.GetSection("Logging"));
logging.AddConsole(); // 注册 Console Logger
logging.AddDebug(); // 注册 Debug Logger
logging.AddFile();
})
.UseStartup<Startup>();
//Startup.cs
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime applicationLifetime, ILogger<Startup> logger)
{
//使用Logger记录日志信息
logger.LogInformation("Application started");
applicationLifetime.ApplicationStopping.Register(() =>
{
logger.LogInformation("Application stopping");
});
}
5. 测试Logger
使用Logger记录不同级别的日志信息,并查看是否成功写入logs.txt日志文件中。
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("This is a test log message.");
return View();
}
public IActionResult Privacy()
{
_logger.LogWarning("This is a warning log message.");
return View();
}
public IActionResult Error()
{
_logger.LogError("This is an error log message.");
return View();
}
四、示例说明
示例一:
在项目中加入Logger后,记录所有的控制台信息,并将信息输出到logs文件中。在控制器中编写代码,如下所示:
ILogger logger = LogManager.CreateLogger<YourController>();
logger.LogInformation("The message");
logger.LogWarning("Something to warn about");
logger.LogError("Something went wrong");
示例二:
在.NET Core Web应用程序中记录日志,如果需要将日志保存到指定的日志文件中,可以使用以下代码示例:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddLogging(loggingBuilder =>
{
loggingBuilder.AddConfiguration(Configuration.GetSection("Logging"));
loggingBuilder.AddConsole();
loggingBuilder.AddFile(Configuration.GetValue<string>("Logging:FilePath"));
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("error");
}
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
loggerFactory.AddFile(Configuration.GetValue<string>("Logging:FilePath"));
}
}
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("This is an index action of home controller.");
return View();
}
}
以上就是“.Net Core使用Logger实现log写入本地文件系统”的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.Net Core使用Logger实现log写入本地文件系统 - Python技术站