.net 6中使用log4net写sqlserver数据库日志
net 6中使用log4net必须添加log4net、Microsoft.Extensions.Logging.Log4Net.AspNetCore两个引用。
使用之前必须在项目中添加log4net的配置文件Log4Net.Config,代码如下:
<?xml version="1.0" encoding="utf-8"?> <log4net> <!--SqlServer形式--> <!--log4net日志配置:http://logging.apache.org/log4net/release/config-examples.html --> <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender"> <!--日志缓存写入条数 设置为0时只要有一条就立刻写到数据库--> <bufferSize value="0" /> <connectionType value="System.Data.SqlClient.SqlConnection,System.Data.SqlClient, Version=4.6.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <connectionString value="Data Source=.;Initial Catalog=LogManager;Persist Security Info=True;User ID=sa;Password=t145879" /> <commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@thread" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread" /> </layout> </parameter> <parameter> <parameterName value="@log_level" /> <dbType value="String" /> <size value="50" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level" /> </layout> </parameter> <parameter> <parameterName value="@logger" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger" /> </layout> </parameter> <parameter> <parameterName value="@message" /> <dbType value="String" /> <size value="4000" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message" /> </layout> </parameter> <parameter> <parameterName value="@exception" /> <dbType value="String" /> <size value="2000" /> <layout type="log4net.Layout.ExceptionLayout" /> </parameter> </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="AdoNetAppender_SqlServer" /> </root> </log4net>
然后在Program.cs文件中进行注册,注册代码如下:
var builder = WebApplication.CreateBuilder(args);
#region log4net
{
//引用log4net
//引用Microsoft.Extensions.Logging.Log4Net.AspNetCore
builder.Logging.AddLog4Net("CfgFile/Log4Net.Config");
}
#endregion
注册完成后在程序里面就可以使用了,使用方法如下:
public class FirstController : Controller
{
private readonly ILogger<FirstController> _Logger;
private readonly ILoggerFactory _LoggerFactory;
public FirstController(ILogger<FirstController> logger,ILoggerFactory loggerFactory) {
this._Logger = logger;
this._Logger.LogInformation($"{this.GetType().Name}被构造了log1");
this._LoggerFactory = loggerFactory;
ILogger<FirstController> _Logger2 =
this._LoggerFactory.CreateLogger<FirstController>();
_Logger2.LogInformation($"{this.GetType().Name}被构造了log2");
}
public IActionResult Index()
{
ILogger<FirstController> _Logger3 =
this._LoggerFactory.CreateLogger<FirstController>();
_Logger3.LogInformation($"index被执行了");
this._Logger.LogInformation($"index被执行了");
return View();
}
}
猜您可能还喜欢
- .Nuget Packages 太占C盘,删除后可以放到其他盘(1623)
- net core+webapi+nginx windows 服务器部署(1491)
- ASP.NET Core 配置 Swagger 显示接口注释描述信息(1237)
- .net core 6.0 web API + SwaggerUI + IIS部署(1183)
- vue调用接口后获取不到后端返回的Header响应头(1179)
- .net core 系列实例开发教程-权限管理系统功能介绍(1105)
- .net core 实例教程(十二)配置启用Swagger中的【Authorize】按钮(1071)
- .net core 实例教程(十一)生成JWT格式的token密码配置及代码(997)
- .net core 实例教程(十四)配置 Swagger 显示接口注释描述信息及支持版本控制(964)
- .net core 实例教程(三)仓储及领域服务功能实现(既实现用户表的增删改查接口)(947)
评论列表
发表评论
文章分类
文章归档
- 2025年3月 (1)
- 2024年6月 (2)
- 2024年5月 (2)
- 2024年4月 (4)
- 2024年3月 (30)
- 2024年1月 (4)
- 2023年12月 (2)
- 2023年11月 (4)
- 2023年10月 (4)
- 2023年9月 (6)
- 2023年3月 (2)
- 2023年2月 (1)
- 2023年1月 (1)
- 2022年12月 (1)
- 2022年9月 (21)
- 2022年8月 (10)
- 2022年7月 (3)
- 2022年4月 (1)
- 2022年3月 (13)
- 2021年8月 (1)
- 2021年3月 (1)
- 2020年12月 (42)
- 2020年11月 (7)
- 2020年10月 (5)
- 2020年8月 (1)
- 2020年6月 (1)
- 2020年3月 (2)
- 2019年12月 (8)
- 2019年11月 (3)
- 2019年9月 (1)
- 2019年4月 (1)
- 2019年3月 (6)
- 2019年2月 (1)
- 2018年7月 (7)
阅读排行
- 1.asp.net mvc内微信pc端、H5、JsApi支付方式总结(5878)
- 2.Windows 10休眠文件更改存储位置(3835)
- 3.各大搜索网站网站收录提交入口地址(3480)
- 4.ECharts仪表盘实例及参数使用详解(3433)
- 5.windows 10安装myeclipse 10破解补丁cracker.jar、run.bat闪退解决办法(3424)
- 6.HTML5 WebSocket与C#建立Socket连接实现代码(3180)
- 7.华为鸿蒙系统清除微信浏览器缓存方法(3173)
- 8.CERT_HAS_EXPIRED错误如何解决(2967)
- 9.Js异步async、await关键字详细介绍(lambda表达式中使用async和await关键字)(2605)
- 10.HBuilder编辑器格式化代码(2394)
