首页 编程 正文

.net8.0 log4net在programe中记录全站的访问日志

2024-04-11 09:27 23
admin

.net8.0 log4net在programe中记录全站的访问日志

在.NET 8.0中使用log4net记录全站访问日志,你需要进行以下步骤:

dotnet add package log4net
  1. 配置log4net。在项目的appsettings.json中添加log4net的配置。

  2. 在程序的入口点(通常是Program.cs)配置log4net。

  3. 创建日志记录器,在需要记录日志的地方进行日志记录。

以下是具体的实现步骤和代码示例:

  1. 安装log4net。

  2. 配置log4net。在appsettings.json中添加如下配置:

{
  "Logging": {
    "Log4Net": {
      "Level": "DEBUG",
      "ConfigFile": "log4net.config"
    }
  }
}

创建一个log4net的配置文件log4net.config(通常放在项目根目录),并进行相关配置

<log4net>
  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="logs/access.log" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
  </appender>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="RollingFile" />
  </root>
</log4net>

在Program.cs中配置log4net并使用日志记录器。

using log4net;
using log4net.Config;
using Microsoft.Extensions.Logging;
using System;
using System.IO;
 
// ...
 
var builder = WebApplication.CreateBuilder(args);
 
// 加载log4net配置
XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));
 
// 添加log4net日志记录
builder.Logging.AddLog4Net();
 
var app = builder.Build();
 
// 获取日志记录器
ILog log = LogManager.GetLogger(typeof(Program));
 
// 在这里使用日志记录器
app.Use(async (context, next) =>
{
    log.Info($"{context.Request.Method} {context.Request.Path}");
    await next();
});
 
// ...
 
app.Run();

在上述代码中,首先配置并监视log4net的配置文件,然后将log4net添加到日志记录提供者中。在请求管道中,我们获取一个日志记录器并记录访问信息。这样,每当有请求通过ASP.NET Core应用程序时,就会记录相关的访问信息到指定的日志文件中。

相关文章