Asp.Net 6.0集成 Log4Net

news2024/12/23 22:44:53

环境

需要安装NuGet包,明细如下:

  • log4net
  • Microsoft.Extensions.Logging.Log4Net.AspNetCore

配置文件

文件名称 log4net.config,默认可以放在与启动类Program.cs同级目录下

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <!-- Define the appender for info level -->
  <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
    <file value="./LOG/info/" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="'info.'yyyy-MM-dd'.log'" />
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
    <!-- Define a filter to only accept info level -->
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="INFO" />
      <levelMax value="INFO" />
    </filter>
  </appender>

  <!-- Define the appender for error level -->
  <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    <file value="./LOG/error/" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="'error.'yyyy-MM-dd'.log'" />
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline%exception%newline" />
    </layout>
    <!-- Define a filter to only accept error level -->
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="ERROR" />
      <levelMax value="ERROR" />
    </filter>
  </appender>

  <!-- Set root logger level to ALL and its appenders to InfoAppender and ErrorAppender -->
  <root>
    <level value="ALL"/>
    <!-- You can also use other levels such as DEBUG, WARN, FATAL etc. -->
    <!-- See https://logging.apache.org/log4net/release/sdk/log4net.Core.Level.html for more details -->

    <appender-ref ref ="InfoAppender"/>
    <appender-ref ref ="ErrorAppender"/>
  </root>
</log4net>


配置

在启动类中进行配置(Program.cs)

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
#region 配置 log4Net 需要安装log4net、Microsoft.Extensions.Logging.Log4Net.AspNetCore
builder.Services.AddLogging(cfg =>
{
    cfg.AddLog4Net();
    //默认的配置文件路径是在根目录,且文件名为log4net.config
    //如果文件路径或名称有变化,需要重新设置其路径或名称
    //比如在项目根目录下创建一个名为cfg的文件夹,将log4net.config文件移入其中,并改名为log.config
    //则需要使用下面的代码来进行配置
    //cfg.AddLog4Net(new Log4NetProviderOptions()
    //{
    //    Log4NetConfigFileName = "cfg/log.config",
    //    Watch = true
    //});
});
#endregion

使用


[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{

    private readonly ILogger<WeatherForecastController> _logger;
// 构造函数注入
    public WeatherForecastController(ILogger<WeatherForecastController> logger, IUnitOfWork uow)
    {
        _logger = logger;
        Uow = uow;
    }

    public IUnitOfWork Uow { get; }

    [HttpGet("GetUsers")]
    public async Task<ApiResponse> GetUsers()
    {
        IRepository<User> repository = Uow.GetRepository<User>();
        IList<User> users = await repository.GetAllAsync(orderBy: f => f.OrderByDescending(x => x.UpdateDate));
        _logger.LogInformation("查询所有用户");
        return new ApiResponse(true, users);
    }

}

效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1000217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云服务器无法使用 xftp 上传文件

现象&#xff1a;xftp 连接腾讯云服务器后不能在可视化界面创建文件&#xff0c;也不能上传文件 解决办法&#xff1a; 一、防火墙开放 21 端口 二、使用 xshell 登陆云服务器&#xff0c;默认登陆为 ubuntu 用户&#xff0c;需要切到 root&#xff0c;只有 root 用户才有 FTP…

kubernetes-operator开发教程(基于kubebuilder脚手架)

1、Operator介绍 Operator是什么&#xff1f; Kubernetes Operator是一个自定义控制器&#xff0c;用于通过自动化操作来管理复杂应用或服务。 实现原理是什么&#xff1f; Kubernetes Operator的实现原理基于自定义控制器&#xff08;Controller&#xff09;和自定义资源定义…

conda常用命令及问题解决-创建虚拟环境

好久没写博文了&#xff0c;感觉在学习的过程中还是要注意积累与分享&#xff0c;这样利人利己。 conda包清理&#xff0c;许多无用的包是很占用空间的 conda clean -p //删除没有用的包 conda clean -y -all //删除pkgs目录下所有的无用安装包及cacheconda创建虚拟环境…

机器学习入门教学——标签编码、序号编码、独热编码

1、前言 在机器学习过程中&#xff0c;我们经常需要对特征进行分类&#xff0c;例如&#xff1a;性别有男、女&#xff0c;国籍有中国、英国、美国等&#xff0c;种族有黄、白、黑。 但是分类器并不能直接对字符型数据进行分类&#xff0c;所以我们需要先对数据进行处理。如果…

索引失效有哪些?

在工作中&#xff0c;如果我们想要提高一条语句的查询速度&#xff0c;通常都会想对字段建立索引。 但是索引不是万能的。建立了索引&#xff0c;并不意味着任何查询语句都能走索引扫描。 稍不注意&#xff0c;可能查询语句就会导致索引失效&#xff0c;从而走了全表扫描&…

美业创新之路:广告电商模式让你的品牌脱颖而出

美业是一个巨大的市场&#xff0c;但也面临着激烈的竞争和消费者的多样化需求。如何在这个市场中脱颖而出&#xff0c;实现品牌的增长和盈利呢&#xff1f;答案就是广告电商模式。 广告电商模式是一种结合了社交电商和广告分佣的新型电商模式&#xff0c;它可以让消费者在购物的…

几种研发管理流程

一、CMMI 1.初始阶段 软件过程混乱&#xff0c;有时甚至混乱。几乎没有流程的定义。成功取决于个人的努力。管理是被动的。 2.可重复/可管理 建立了基本的项目管理流程来跟踪成本&#xff0c;进度和功能特征。已经建立了必要的过程规程&#xff0c;以便能够重复先前类似应用…

RPC框架核心技术

一、RPC框架整体架构 RPC Client && RPC Server RPC Client 1、动态代理&#xff0c;根据lookUp信息&#xff08;接口-实现-方法&#xff09;动态创建出代理类&#xff0c;&#xff08;创建代理类RPC服务端的目标接口&#xff09;。即Lookup为远端目标接口地址&#…

localStorage是什么?有哪些特点?

localStorage的主要作用是本地存储&#xff0c;它可以将数据按照键值对的方式保存在浏览器中&#xff0c;直到用户或者脚本主动清除数据&#xff0c;否则该数据会一直存在。也就是说&#xff0c;使用了本地存储的数据将被持久化保存。 localStorage与sessionStorage的区别是存…

Cpolar+Tipas:在Ubuntu上搭建私人问答网站,为您提供专业的问题解答

文章目录 前言2.Tipask网站搭建2.1 Tipask网站下载和安装2.2 Tipask网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3 Cpolar稳定隧道&#xff08;本地设置&#xff09; 4. 公网访问测试5. 结语 前…

什么是JavaScript中的严格模式(strict mode)?应用场景是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 严格模式&#xff08;Strict Mode&#xff09;&#xff1a;⭐ 使用场景⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&…

shell脚本指令:for循环、函数、数组、grep等指令的使用

1、实现一个对数组求和的函数&#xff0c;数组通过实参传递给函数 2、写一个函数&#xff0c;输出当前用户的uid和gid 并使用变量接收结果 #!/bin/bash echo "请输入一个数组" read -a arr function add_arr() {var1${#arr[*]}for i in ${arr[*]} do((sumi))doner…

技术解码 | GB28181/SIP/SDP 协议--EasyGBS国标GB28181平台国标视频技术SIP解析

EasyGBS国标视频云服务是基于国标GB/T28181协议的视频能力平台&#xff0c;可实现的视频功能包括&#xff1a;实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强&#xff0c;支持将接入的视频流进行全终端、全平台分发&#…

中国人民大学与加拿大女王大学金融硕士——人生总要逼自己一把

我们每个人都是一个独特而丰富的个体&#xff0c;身上蕴藏着各种潜力和可能性。要不断去开发自己的潜能&#xff0c;不断学习和提升自己的知识和技能&#xff0c;保持对新知识和趋势的敏感。想要在职场上走得更远&#xff0c;就要逼自己一把&#xff0c;在职继续攻读硕士学位是…

82 # koa-bodyparser 中间件的使用以及实现

准备工作 安装依赖 npm init -y npm i koakoa 文档&#xff1a;https://koajs.cn/# koa 中不能用回调的方式来实现&#xff0c;因为 async 函数执行的时候不会等待回调完成 app.use(async (ctx, next) > {console.log(ctx.path, ctx.method);if (ctx.path "/login…

518抽奖软件,是否会重复中奖,还是没人只能抽中一次

518抽奖软件简介 518抽奖软件&#xff0c;518我要发&#xff0c;超好用的年会抽奖软件&#xff0c;简约设计风格。 包含文字号码抽奖、照片抽奖两种模式&#xff0c;支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 不会重复中奖 类似抽奖箱的概念&#xff0c…

【1++的数据结构】之哈希(二)

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的数据结构】 文章目录 一&#xff0c;前言二&#xff0c;位图1. 位图2. 位图的应用 三&#xff0c;布隆过滤器 一&#xff0c;前言 上一节我们讲解了哈希表&#xff0c;简单的了解了哈希思想…

探索工业4.0:数字孪生如何重塑工业生产流程?

在过去的几十年里&#xff0c;工业生产经历了从机械化、自动化到数字化的巨大转变。随着工业4.0的到来&#xff0c;我们正处于第四次工业革命的边缘&#xff0c;这次革命将由数字孪生技术引领。本文将深入探讨数字孪生在工业生产中的应用和潜力。 数字孪生&#xff08;Digital …

第六章 进程管理与系统监控

第六章 进程管理与系统监控 ​ 一个具有较好的安全性和稳定性的系统是用户所需要的。无论进行何种操作和业务处理&#xff0c;用户都希望系统始终处于安全、稳定的状态。因此&#xff0c;即时地进行系统的进程管理和系统监控工作是保证系统安全、稳定的状态。 1.进程管理 1.…

C++项目实战——基于多设计模式下的同步异步日志系统-⑥-日志等级类与日志消息类设计

文章目录 专栏导读日志等级类设计日志等级划分to_string函数设计日志等级类整理 日志消息类设计 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计划导师&#xff0c;阿里云专家博主&#xff0c;…