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

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

2024-09-03 09:46 编辑:  丽丽学习网

.net8.0 log4net在programe中记录全站的访问日志,  当然,也可以使用nginx的日志查看,不过,这里还是用asp.net本身来记录一下,可以记入数据库。方便后续分析

在.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应用程序时,就会记录相关的访问信息到指定的日志文件中。