Log4Net日志框架之配置文件

配置文件

程序默认去读取App.config(桌面应用)或者Web.config(Web应用) ,当然也可以自己配置文件,比如本文创建log4Net.config文件,存放配置内容

<?xml version="1.0" encoding="utf-8" ?> 
 <log4net>
    <!-- Define some output appenders -->
   
    <!--Type 表示用那种类型记录日志-->
    <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender"> <!--表示用文本来记录日志-->
      
      <file value="log\log.txt" />
      <!--<file value="D:\MyLog1\Onelog.txt" />-->

      <!--追加日志内容-->
      <!--<appendToFile value="false" />-->
      <appendToFile value="true" />

      <!--防止多线程时不能写Log,官方说线程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /><!--最小锁-->

      <!--配置Unicode编码-->
       <Encoding value="UTF-8" />

      <!--是否只写到一个文件里-->
      <param name="StaticLogFileName" value="false" />
       
      <!--当备份文件时,为文件名加的后缀,这里可以作为每一天的日志分别存储不同的文件-->
      <datePattern value="yyyyMMdd&quot;.txt&quot;" />
       
      <!--可以为:Once|Size|Date|Composite-->
      <!--Composite为Size和Date的组合-->
      <!--<rollingStyle value="Composite" />-->
      <rollingStyle value="Size" />
       
      <!--日志最大个数,都是最新的-->
      <!--rollingStyle节点为Size时,只能有value个日志文件-->
      <!--rollingStyle节点为Composite时,每天有value个日志-->
      <maxSizeRollBackups value="2" />

      <!--可用的单位:KB|MB|GB-->
      <maximumFileSize value="2MB" />

      <!--置为true,当前最新日志文件名永远为file节中的名字-->
      <staticLogFileName value="true" />

      <!--过滤器-->

      <!--阻止所有事件被记录-->
      <!--<filter type="log4net.Filter.DenyAllFilter"> </filter>-->

      <!--只有指定等级的日志事件才被记录-->
      <!--<filter type="log4net.Filter.LevelMatchFilter">
        <param value="FATAL" />
      </filter>-->
 
      <!--日志等级在指定范围内的事件才被记录-->
      <!--<filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="ERROR" />
        <param name="LevelMax" value="FATAL" />
      </filter>-->

  
      <layout type="log4net.Layout.PatternLayout">
        <!--日志输出格式:时间  日志类型  日志内容-->
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
      </layout>
    </appender>

    <!-- levels: OFF > FATAL > ERROR > WARN > INFO > DEBUG  > ALL -->
    <root>
      <priority value="ALL"/>
      <level value="ALL"/>
      <appender-ref ref="rollingAppender" />
    </root>
  </log4net>

配置文件要设置为始终复制
在这里插入图片描述

直接读取配置

在这里插入图片描述
读取指定路径ConfigFile\log4Net.config下的配置文件,代码演示如下。

        public MainWindow()
        {
            //1、通过Nuget安装Log4net程序包
            //2、需要引入配置文件
            //3、通过代码读取配置文件
            //4、通过LogManger获取ILog 接口
            //5、写不同等级的日志 
            //XmlConfigurator.Configure();// 默认去读取App.config或者Web.config             
            XmlConfigurator.Configure(new FileInfo(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ConfigFile\\log4Net.config")));

            ILog ilog = LogManager.GetLogger(typeof(MainWindow));
            ilog.Fatal("This is Fatal Message");
            ilog.Error("This is Error Message", new Exception("Test"));
            ilog.Info("This is Info Message");
            ilog.Warn("This is Warn Message");
             
            InitializeComponent();
        }

全局注册配置文件

通过将读取配置文件的过程设为全局,就不需要在每个函数中反复去读取配置文件(读取一次即可)。

1.AssemblyInfo中注册

在Properties中的AssemblyInfo.cs文件中进行注册配置文件

//[assembly:log4net.Config.XmlConfigurator()] // 通过反射全局注册,默认读取WebConfig
[assembly:log4net.Config.XmlConfigurator(ConfigFile = "ConfigFile\\log4Net.config")] // 指定读取log4net的配置文件
2.程序启动时注册

例如在WPF应用中,在App.xaml的构造函数中读取一次配置文件。

XmlConfigurator.Configure(new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ConfigFile\\log4Net.config"))); 
3. IOC或者中间件注册(.netCore中演示)

在. netCore通过中间件使用Log4net
1、引入配置文件Log4net
2、Nuget: Microsoft.AspNetCore.Http.Extensions、Nuget:log4net和Nuget:Microsoft.Extensions.Logging.Log4Net.AspNetCore
3、loggingBuilder.AddFilter(“System”, LogLevel.Warning);
4、loggingBuilder.AddFilter(“Microsoft”, LogLevel.Warning);//过滤掉系统默认的一些日志

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureLogging((context,loggingBuilder)=> {//通过中间件的方式使用Log4Net
                    // 因为系统日志会很多
                    loggingBuilder.AddFilter("System", LogLevel.Warning);
                    loggingBuilder.AddFilter("Microsoft", LogLevel.Warning);//过滤掉系统默认的一些日志
                    loggingBuilder.AddLog4Net(); //注册Log4Net 到.Net Core
                })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

使用的时候,构造函数会自动注入ILogger,如下。

    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;

        //构造函数的注入
        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

        public IActionResult Index()
        { 
            _logger.LogDebug("This is HomeController_Index");
            return View();
        }
    }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
log4net是一个用于日志记录的开源框架,它可以帮助我们在应用程序中实现灵活和可配置的日志记录功能。在使用log4net时,我们需要一个配置文件来指定日志记录的方式和格式,这个配置文件通常被称为log4net.config。 要下载log4net.config配置文件,我们可以按照以下步骤进行操作: 1. 打开一个网页浏览器,然后搜索log4net的官方网站或在其他资源网站上搜索log4net.config配置文件。 2. 在搜索结果中找到相应的下载链接,点击进入下载页面。 3. 阅读下载页面上的说明和提示,确保你选择要下载的是log4net.config配置文件。 4. 点击下载按钮或链接,开始下载log4net.config配置文件。 5. 等待下载完成,通常这个过程不会很长。 6. 打开下载文件夹,找到刚刚下载的log4net.config配置文件。一般情况下,它的文件名为log4net.config。 7. 将log4net.config配置文件复制到你的应用程序的根目录或指定的日志配置文件位置。 8. 根据你的需求编辑log4net.config配置文件,根据需要配置日志的级别、输出位置、格式等。 9. 将log4net.config配置文件与你的应用程序一起发布或部署。 通过以上步骤,我们就可以成功下载log4net.config配置文件,并将它应用到我们的应用程序中,实现日志记录的功能。需要注意的是,不同的log4net版本可能有略微不同的配置方式和语法,因此在使用时最好参考官方文档或其他合适的资源来进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值