首页 > 其他分享 >在.Net Core6中使用log4net组件写日志到本地文件的操作流程

在.Net Core6中使用log4net组件写日志到本地文件的操作流程

时间:2023-06-19 17:44:57浏览次数:46  
标签:log4net logger Logging AddFilter Microsoft Net loggerFactory Core6 日志

原文链接:https://blog.csdn.net/kevin860/article/details/106881062

1.引用包:

 Log4Net 

 Microsoft.Extensions.Logging.Log4Net.AspNetCore

 Microsoft.Extensions.Logging

 

//loggingbuilder.AddFilter该方法需要引入Microsoft.Extensions.Logging名称空间 
loggingbuilder.AddFilter("System", LogLevel.Warning); //过滤掉系统默认的一些日志
loggingbuilder.AddFilter("Microsoft", LogLevel.Warning);//过滤掉系统默认的一些日志 
 

2.导入Log4net.config  配置文件

<?xml version="1.0" encoding="utf-8"?>
<log4net>
<appender name="RollingAppender" type="log4net.Appender.RollingFileAppender">
<!--指定日志文件保存的目录-->
<file value="log\log.txt"/>
<!--追加日志内容-->
<appendToFile value="true"/>
<!--可以为:Once|Size|Date|Composite-->
<!--Compoosite为Size和Date的组合-->
<rollingStyle value="Composite"/>
<!--设置为true,当前最新日志文件名永远为file字节中的名字-->
<staticLogFileName value="false"/>
<!--当备份文件时,备份文件的名称及后缀名-->
<datePattern value="yyyyMMdd.TXT"/>
<!--日志最大个数-->
<!--rollingStyle节点为Size时,只能有value个日志-->
<!--rollingStyle节点为Composie时,每天有value个日志-->
<maxSizeRollBackups value="20"/>
<!--可用的单位:KB|MB|GB-->
<maximumFileSize value="5MB"/>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ALL"/>
<param name="LevelMax" value="FATAL"/>
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender>
<root>
<priority value="ALL"/>
<level value="ALL"/>
<appender-ref ref="RollingAppender"/>
</root>
</log4net>

 

3.注册到program中

builder.Logging.AddFilter("System", LogLevel.Warning); //过滤掉系统默认的一些日志
builder.Logging.AddFilter("Microsoft", LogLevel.Warning); //过滤掉系统默认的一些日志
builder.Logging.AddLog4Net("Config/Log4net.config");

 

4.Controller中使用 

private readonly ILogger<WeatherForecastController> _logger;

private readonly ILoggerFactory _loggerFactory;

public WeatherForecastController(ILogger<WeatherForecastController> logger, ILoggerFactory loggerFactory)
{
_logger = logger;
_logger.LogInformation($"1..构造函数中!{DateTime.Now}");
_loggerFactory = loggerFactory;
ILogger<WeatherForecastController> logger2 = this._loggerFactory.CreateLogger<WeatherForecastController>();
logger2.LogInformation($"2..{this.GetType().Name}被logger2中构造了。。。");
}

标签:log4net,logger,Logging,AddFilter,Microsoft,Net,loggerFactory,Core6,日志
From: https://www.cnblogs.com/luckyTian/p/17491694.html

相关文章

  • SNN-RAT: Robustness-enhanced Spiking Neural Network through Regularized Adversar
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!同大组工作 Abstract ......
  • .net 6 Policy-based authorization 基于策略授权
    授权策略包含一个或多个要求。在应用的文件中将其注册为授权服务配置的一 Program.cs 部分:builder.Services.AddSingleton<IAuthorizationHandler,User_Role_Url_AHandler1>();builder.Services.AddAuthorization(options=>{options.AddPolicy("RequireAdministratorR......
  • (转)kubernetes(k8s) yaml 文件详解2
    原文:https://juejin.cn/post/7202145223014252602#heading-0一、K8S支持的文件格式kubernetes支持YAML和JSON文件格式管理资源对象。JSON格式:主要用于api接口之间消息的传递YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读1、yaml和json的主要区......
  • kubernetes入门
    一、kubernetes简介kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效(powerful),kubernetes提供了应用部署,规划,更新,维护的一种机制。kubernetes的目标是让部署容器化的应用简单并且高效(powerful),kubernetes提供了......
  • .Net 微服务之旅 -- 系列文章
    合集-微服务.Net微服务之旅Windows10开启子系统Ubuntu子系统安装Docker 出处:https://www.cnblogs.com/kingkangstudy/collections/3069......
  • 一次与 ChatGPT 的 .NET 面试问答
    以常用问题来面试机器人,机器人是否能够合格1.您能描述一下您曾经在.NET项目中集成硬件设备的经历吗?这个过程是怎样的,您面临了哪些挑战?GPT回答:当我在.NET项目中集成硬件设备时,我首先研究了硬件设备的文档,了解了其API和接口。我编写了一个简单的应用程序来测试硬件设备的基本功......
  • .Net 微服务之旅
    本系列文章从0开始搭建微服务,基于自己本地环境开发。本系列会一步步记录整个开发实战环境。不足之处,望各位多多指正,会不定期修改并更正到文章中。基础资源Windows10VisualStudio2022.Net7.0WSL2子系统UbuntuDockerGitLab&GitLabCI/CDNuget私有仓库......
  • 关于ASP.NET.CORE中的Failed to read parameter "string param" from the request bod
    先上报错信息Microsoft.AspNetCore.Http.BadHttpRequestException:Failedtoreadparameter"stringparam"fromtherequestbodyasJSON.--->System.Text.Json.JsonException:'s'isaninvalidstartofavalue.Path:$|LineNumber:0|By......
  • .net 数据库开发的时候的一些错误
    (.netC#)今天找到了一个错误,就是在数据库记录用程序插入的时候,竟然没有检查数据库的列和插入列有没有匹配,找出错误。 ......
  • 记一次 .NET 某旅行社审批系统 崩溃分析
    一:背景1.讲故事前些天有位朋友找到我,说他的程序跑着跑着就崩溃了,让我看下怎么回事,其实没怎么回事,抓它的crashdump就好,具体怎么抓也是被问到的一个高频问题,这里再补一下链接:[.NET程序崩溃了怎么抓Dump?我总结了三种方案]https://www.cnblogs.com/huangxincheng/p/148119......