当前位置: 首页 > news >正文

ASP.NET Core 使用Log4net

1. Nuget安装log4net,图里的两个

2.项目根目录下添加log4net.config.添加下面的代码:

<?xml version="1.0" encoding="utf-8"?>
<configuration><!-- This section contains the log4net configuration settings --><log4net><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"><file value="Log/" /><appendToFile value="true" /><rollingStyle value="Composite" /><staticLogFileName value="false" /><datePattern value="yyyy-MM-dd'.log'" /><maxSizeRollBackups value="10" /><maximumFileSize value="10MB" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date  [%thread]  %-5level  %message%newline" /></layout></appender><!-- Setup the root category, add the appenders and set the default level --><root><level value="ALL" /><appender-ref ref="RollingLogFileAppender" /></root></log4net></configuration>

3. 添加一个logHelper.cs

    public class LogHelper{private static readonly ILog logger;static LogHelper(){if (logger == null){var repository = LogManager.CreateRepository("NETCoreRepository");XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));logger = LogManager.GetLogger(repository.Name, "InfoLogger");}}/// <summary>/// 普通日志/// </summary>/// <param name="message"></param>/// <param name="exception"></param>public static void Info(string message, Exception exception = null){if (exception == null)logger.Info(message);elselogger.Info(message, exception);}/// <summary>/// 告警日志/// </summary>/// <param name="message"></param>/// <param name="exception"></param>public static void Warn(string message, Exception exception = null){if (exception == null)logger.Warn(message);elselogger.Warn(message, exception);}/// <summary>/// 错误日志/// </summary>/// <param name="message"></param>/// <param name="exception"></param>public static void Error(string message, Exception exception = null){if (exception == null)logger.Error(message);elselogger.Error(message, exception);}}

4. 调用:

LogHelper.Info("test Info log");     //普通日志
LogHelper.Warn("test Warn log");      //告警日志
LogHelper.Error("test Error log");   //错误日志

项目里就会生成log文件

可以用来输出SQL:

public class DbContext{private static SqlSugarClient _db = null;/// <summary>/// test是数据库名/// </summary>public static string ConnectionString = "server=localhost;uid=aaa;pwd=123;database=test_db";public SqlSugarClient CreateClient(){_db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = ConnectionString, //数据库连接字符串DbType = DbType.MySql, //必填IsAutoCloseConnection = true, //默认falseInitKeyType = InitKeyType.Attribute,AopEvents = new AopEvents{OnLogExecuting = (sql, pars) =>{LogHelper.Info("执行SQL: " + sql);if (pars!=null){LogHelper.Info("Parameter: ");foreach (var s in pars){LogHelper.Info(string.Format("{0}:{1};", s.ParameterName, s.Value));}}}}});return _db;}}

如果是放在类库,则类库添加Nuget引用后,把log4net.config和logHelper.cs放在类库里。注意log4net.config要放在根目录,设置此文件的属性复制到输出目录为:始终复制。

下图仅为示例:

其他项目添加引用该类库就行了,不再需要额外配log4net.config了。和.Net Framework版有些许不同。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • elasticSearch快速了解
  • shark云原生-日志体系-ECK
  • 基于前馈神经网络 FNN 实现股票单变量时间序列预测(PyTorch版)
  • 打卡第9天-----字符串
  • MySQL 条件函数/加密函数/转换函数
  • 从零开始学习嵌入式----Makefile工具
  • 论文 | Chain-of-Thought Prompting Elicits Reasoningin Large Language Models 思维链
  • 大数据学习之Spark基础
  • 【Linux】Windows平台使用gdb调试FFmpeg源码
  • 【C++】类中的六个默认成员函数(构造函数、析构函数、拷贝构造函数、复制重载函数等)
  • MySQL 数据库基础概念
  • 任务需求准确度量;高效计算任务调度;算力资源统一度量
  • 新火种AI|微软和苹果放弃OpenAI董事会观察员席位
  • Centos新手问题——yum无法下载软件
  • 【两大3D转换SDK对比】HOOPS Exchange VS. CAD Exchanger
  • CAP理论的例子讲解
  • CEF与代理
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • LeetCode29.两数相除 JavaScript
  • mysql外键的使用
  • mysql中InnoDB引擎中页的概念
  • tweak 支持第三方库
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 三栏布局总结
  • 小试R空间处理新库sf
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (2)STL算法之元素计数
  • (52)只出现一次的数字III
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C++20) consteval立即函数
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (PADS学习)第二章:原理图绘制 第一部分
  • (Python) SOAP Web Service (HTTP POST)
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (分布式缓存)Redis分片集群
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (四) 虚拟摄像头vivi体验
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (一)VirtualBox安装增强功能
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .Net 基于MiniExcel的导入功能接口示例
  • .NET的微型Web框架 Nancy
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d