.Net Core配置使用Log4Net日志记录

ops/2024/12/20 5:09:51/

在NuGet包管理中,搜索 Microsoft.Extensions.Logging.Log4Net.AspNetCore

在Startup.cs类中添加如下代码

//添加Log4Net
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config");
//不带参数:表示log4net.config的配置文件就在应用程序根目录下,也可以指定配置文件的路径
//需要添加nuget包:Microsoft.Extensions.Logging.Log4Net.AspNetCore
//builder.AddLog4Net(path);// 配置日志【https://cytobox.blog.csdn.net/article/details/116063617?fromshare=blogdetail&sharetype=blogdetail&sharerId=116063617&sharerefer=PC&sharesource=Elegant_Kevin&sharefrom=from_link】
services.AddLogging(loggingBuilder =>
{loggingBuilder.AddFilter("System", LogLevel.Warning);loggingBuilder.AddFilter("Microsoft", LogLevel.Warning); //过滤掉系统默认的一些日志loggingBuilder.AddLog4Net(path); // 注入 log4net 配置
});

log4net.config文件配置如下,另外需要设置此文件复制到输出目录。

<?xml version="1.0" encoding="utf-8"?>
<log4net><!-- Define some output appenders --><appender name="RollingAppender" type="log4net.Appender.RollingFileAppender"><file value="log4\log.log" /><!--追加日志内容--><appendToFile value="true" /><!--防止多线程时不能写Log,官方说线程非安全--><lockingModel type="log4net.Appender.FileAppender+MinimalLock" /><!--可以为:Once|Size|Date|Composite--><!--Composite为Size和Date的组合--><rollingStyle value="Composite" /><!--当备份文件时,为文件名加的后缀--><datePattern value="yyyyMMdd.TXT" /><!--日志最大个数,都是最新的--><!--rollingStyle节点为Size时,只能有value个日志--><!--rollingStyle节点为Composite时,每天有value个日志--><maxSizeRollBackups value="20" /><!--可用的单位:KB|MB|GB--><maximumFileSize value="3MB" /><!--置为true,当前最新日志文件名永远为file节中的名字--><staticLogFileName value="true" /><!--输出级别在INFO和ERROR之间的日志--><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 - %message%newline"/></layout></appender><root><!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--><!--OFF:0--><!--FATAL:FATAL--><!--ERROR: ERROR,FATAL--><!--WARN: WARN,ERROR,FATAL--><!--INFO: INFO,WARN,ERROR,FATAL--><!--DEBUG: INFO,WARN,ERROR,FATAL--><!--ALL: DEBUG,INFO,WARN,ERROR,FATAL--><priority value="ALL"/><level value="INFO"/><appender-ref ref="RollingAppender" /></root>
</log4net>

Controller控制器中的配置如下:

private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger)
{_logger = logger;
}


http://www.ppmy.cn/ops/143388.html

相关文章

已有 containerd 的情况下部署二进制 docker 共存

文章目录 [toc]学习目的开始学习dockerd启动 containerd准备配置文件启动 containerd 启动 docker准备配置文件启动 docker 环境验证停止 docker 和 containerd 学习目的 使用容器的方式做一些部署的交付&#xff0c;相对方便很多&#xff0c;不需要担心别人的环境缺少需要的依…

(耗时4天制作)详细介绍macOS系统 本博文含有全英版

下面为大家详细介绍macOS系统介绍&#xff1a; 一、macOS系统概述 macOS是由苹果公司开发的专有操作系统&#xff0c;主要用于Macintosh&#xff08;Mac&#xff09;系列计算机。它是首个在商用领域成功的图形用户界面&#xff08;GUI&#xff09;操作系统&#xff0c;自诞生…

第十五章 Linux Shell 编程

15.1 Shell 变量 了解&#xff1a;Shell的功能 了解&#xff1a;Shell的种类 了解&#xff1a;Shell的调用 了解&#xff1a;Shell变量的概念 了解&#xff1a;Shell变量的定义 了解&#xff1a;Shell数组变量 了解&#xff1a;Shell内置变量 了解&#xff1a;双引号 和…

力扣题目 - 3264.K 次乘运算后的最终数组I

题目 还需要你前往力扣官网查看详细的题目要求 地址 1.给你一个整数数组 nums &#xff0c;一个整数 k 和一个整数 multiplier 。2.你需要对 nums 执行 k 次操作&#xff0c;每次操作中&#xff1a;找到 nums 中的 最小 值 x &#xff0c;如果存在多个最小值&#xff0c;选择最…

C#核心(17)密封类

前言 我们先前已经学完了继承中的大部分知识&#xff0c;今天我们就来学习最后一个知识点&#xff0c;密封类。 其实我不喜欢叫他密封类&#xff0c;我比较喜欢叫他结扎。 在Unity中&#xff0c;C#的密封类&#xff08;sealed class&#xff09;是一个重要的概念&#xff0c…

FFmpeg第一话:FFmpeg 简介与环境搭建

FFmpeg 探索之旅 一、FFmpeg 简介与环境搭建 二、FFmpeg 解码详解 第一话&#xff1a;FFmpeg 简介与环境搭建 FFmpeg 探索之旅一、前言二、FFmpeg 是什么&#xff1f;三、简单介绍其历史背景四、为什么用 C学习 FFmpeg&#xff1f;&#xff08;一&#xff09;高性能优势&#…

CXF WebService SpringBoot 添加拦截器,处理响应报文格式

描述 XFIRE升级CXF框架&#xff0c;但是对接的系统不做调整&#xff0c;这时候就要保证参数报文和响应报文和以前是一致的。但是不同的框架有不同的规则&#xff0c;想要将报文调整的一致&#xff0c;就需要用到拦截器拦截报文&#xff0c;自定义解析处理。 CXF框架本身就是支…

Java反序列化漏洞分析

2015年11月6日FoxGlove Security安全团队的breenmachine 发布了一篇长博客&#xff0c;阐述了利用Java反序列化和Apache Commons Collections这一基础类库实现远程命令执行的真实案例&#xff0c;各大Java Web Server纷纷躺枪&#xff0c;这个漏洞横扫WebLogic、WebSphere、JBo…