.Net6 Logger 实现log写入本地文件系统
时间: 2023-07-12 08:39:29 浏览: 68
在 .NET 6 中,你可以使用 Host.CreateDefaultBuilder() 方法来创建一个 IHostBuilder 实例,并使用它来配置日志记录器。以下是实现步骤:
1. 首先,你需要在项目中安装 Microsoft.Extensions.Logging 和 Microsoft.Extensions.Logging.File 包。你可以在 NuGet 包管理器中搜索并安装这两个包。
2. 在你的应用程序的 Program.cs 文件中,使用 Host.CreateDefaultBuilder() 方法来创建一个 IHostBuilder 实例并配置日志记录器,例如:
```csharp
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
var builder = Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddFile("Logs/mylog-{Date}.txt");
})
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
await builder.RunConsoleAsync();
```
这段代码将会把日志写入到文件系统中的 Logs 目录下,文件名中会包含当前日期。
3. 在你的代码中,使用 ILogger<T> 接口来记录日志。例如:
```csharp
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
public Worker(ILogger<Worker> logger)
{
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
await Task.Delay(1000, stoppingToken);
}
}
}
```
这段代码使用了 ILogger<Worker> 接口来记录日志。你可以在代码中使用不同的日志级别,例如 LogInformation、LogWarning 和 LogError 等。
4. 运行你的应用程序,日志将会写入到指定的文件中。你可以在 Logs 目录中找到它们。
希望这个简单的指南可以帮助你实现在 .NET 6 中将日志写入本地文件系统。