.net core 3.1使用log4

本文介绍如何在.NET Core 3.1中使用Log4Net进行日志配置,包括修改Program.cs代码以适配Log4Net,并创建Log4Net.config文件来设置不同级别的日志输出,如信息、调试和错误日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • .net core 3.1使用log4
  • Program.cs 代码修改
  •  public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    })
                .ConfigureLogging((context, logger) =>
                {
                    logger.ClearProviders();

                    logger.AddLog4Net(new Log4NetProviderOptions()
                    {
                        Log4NetConfigFileName = "Log4Net.config",
                        Watch = true
                    }); 
                });

  • 新建Log4Net.config

  • <?xml version="1.0" encoding="utf-8" ?>
    <log4net>
      <root>
        <level value="ALL" ref="errorAppender" />
        <appender-ref ref="infoAppender" />
        <appender-ref ref="errorAppender" />
        <appender-ref ref="debugAppender" />
      </root>
      <!-- 日志的等级,它们由高到底分别为: OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL -->
      <!--信息日志配置-->
      <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
        <param name="File" value="Logs\Info\info.log" />
        <param name="AppendToFile" value="true" />
        <param name="MaxFileSize" value="10240" />
        <param name="MaxSizeRollBackups" value="100" />
        <param name="PreserveLogFileNameExtension" value="true" />
        <param name="StaticLogFileName" value="false" />
        <param name="DatePattern" value="yyyyMMdd" />
        <param name="RollingStyle" value="Date" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
          <param name="LevelMin" value="INFO" />
          <param name="LevelMax" value="INFO" />
        </filter>
      </appender>

      <!--调试日志配置-->
      <appender name="debugAppender" type="log4net.Appender.RollingFileAppender">
        <param name="File" value="Logs\Debug\debug.log" />
        <param name="AppendToFile" value="true" />
        <param name="MaxFileSize" value="10240" />
        <param name="MaxSizeRollBackups" value="100" />
        <param name="PreserveLogFileNameExtension" value="true" />
        <param name="StaticLogFileName" value="false" />
        <param name="DatePattern" value="yyyyMMdd" />
        <param name="RollingStyle" value="Date" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
          <param name="LevelMin" value="DEBUG" />
          <param name="LevelMax" value="DEBUG" />
        </filter>
      </appender>

      <!--错误日志配置-->
      <appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
        <param name="File" value="Logs\Error\Err.log" />
        <appendToFile value="true"/>
        <rollingStyle value="Composite"/>
        <preserveLogFileNameExtension value="true"/>
        <datePattern value="yyyyMMdd"/>
        <staticLogFileName value="false"/>
        <!--定义文件最大个数,超过按顺序删除-->
        <param name="MaxSizeRollBackups" value="2"/>
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <maximumFileSize value="10KB" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
          <param name="LevelMin" value="ERROR" />
          <param name="LevelMax" value="ERROR" />
        </filter>
      </appender>

    </log4net>
     

您好,以下是 ASP.NET CORE 3.1 配置 log4net 的示例代码: 1. 在项目中添加 log4net 的 NuGet 包 2. 在项目根目录下创建 log4net.config 文件,配置 log4net 的相关信息,例如: ``` <?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> <file value="logs\log.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <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> ``` 3. 在 Startup.cs 文件中添加 log4net 的配置,例如: ``` using log4net; using log4net.Config; public class Startup { private static readonly ILog log = LogManager.GetLogger(typeof(Startup)); public Startup(IConfiguration configuration) { Configuration = configuration; // 配置 log4net XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config")); } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { // ... } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... // 使用 log4net 记录日志 log.Debug("Debug message"); log.Info("Info message"); log.Warn("Warn message"); log.Error("Error message"); log.Fatal("Fatal message"); } } ``` 以上就是 ASP.NET CORE 3.1 配置 log4net 的示例代码,希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值