.NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库

这篇具有很好参考价值的文章主要介绍了.NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、效果

  1. 记录日志为文档
    .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库,.NET,.netcore,log4net

  2. 记录日志到数据库

.NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库,.NET,.netcore,log4net

二、添加NuGet包

.NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库,.NET,.netcore,log4net文章来源地址https://www.toymoban.com/news/detail-829538.html

三、log4net.config代码配置

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
	<!-- Debug日志 -->
	<appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender" >
		<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
		<file value="logs\\" />
		<!-- 日志文件的命名规则 -->
		<datePattern value="yyyy-MM-dd/'Debug.log'"/>
		<!-- 将日志信息追加到已有的日志文件中-->
		<appendToFile value="true" />
		<rollingStyle value="Size" />
		<maxSizeRollBackups value="100" />
		<maximumFileSize value="3MB" />
		<!-- 指定按日期切分日志文件 -->
		<rollingStyle value="Date"/>
		<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
		<staticLogFileName value="false" />
		<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%newline%newline【日志时间】: %d  【线程ID】: %thread    %newline【日志级别】: %-5p  %newline【日志对象】:%logger  %newline【日志内容】:%m %newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<param name="LevelMin" value="Debug" />
			<param name="LevelMax" value="Debug" />
		</filter>
	</appender>

	<!-- Info日志 -->
	<appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender" >
		<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
		<file value="logs\\" />
		<!-- 日志文件的命名规则 -->
		<datePattern value="yyyy-MM-dd/'Info.log'"/>
		<!-- 将日志信息追加到已有的日志文件中-->
		<appendToFile value="true" />
		<rollingStyle value="Size" />
		<maxSizeRollBackups value="100" />
		<maximumFileSize value="3MB" />
		<!-- 指定按日期切分日志文件 -->
		<rollingStyle value="Date"/>
		<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
		<staticLogFileName value="false" />
		<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%newline%newline【日志时间】:%d  【线程ID】:%thread    %newline【日志级别】:%-5p  %newline【日志对象】:%logger  %newline【日志内容】:%m %newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<param name="LevelMin" value="Info" />
			<param name="LevelMax" value="Info" />
		</filter>
	</appender>

	<!-- WARN日志 -->
	<appender name="RollingFileWarn" type="log4net.Appender.RollingFileAppender" >
		<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
		<file value="logs\\" />
		<!-- 日志文件的命名规则 -->
		<datePattern value="yyyy-MM-dd/'Warn.log'"/>
		<!-- 将日志信息追加到已有的日志文件中-->
		<appendToFile value="true" />
		<rollingStyle value="Size" />
		<maxSizeRollBackups value="100" />
		<maximumFileSize value="3MB" />
		<!-- 指定按日期切分日志文件 -->
		<rollingStyle value="Date"/>
		<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
		<staticLogFileName value="false" />
		<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%newline%newline【日志时间】:%d  【线程ID】:%thread    %newline【日志级别】:%-5p  %newline【日志对象】:%logger  %newline【日志内容】:%m %newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<param name="LevelMin" value="Warn" />
			<param name="LevelMax" value="Warn" />
		</filter>
	</appender>

	<!-- Error日志 -->
	<appender name="RollingFileError" type="log4net.Appender.RollingFileAppender" >
		<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
		<file value="logs\\" />
		<!-- 日志文件的命名规则 -->
		<datePattern value="yyyy-MM-dd/'Error.log'"/>
		<!-- 将日志信息追加到已有的日志文件中-->
		<appendToFile value="true" />
		<rollingStyle value="Size" />
		<maxSizeRollBackups value="100" />
		<maximumFileSize value="3MB" />
		<!-- 指定按日期切分日志文件 -->
		<rollingStyle value="Date"/>
		<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
		<staticLogFileName value="false" />
		<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%newline%newline【日志时间】:%d  【线程ID】:%thread    %newline【日志级别】:%-5p  %newline【日志对象】:%logger  %newline【日志内容】:%m %newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<param name="LevelMin" value="Error" />
			<param name="LevelMax" value="Error" />
		</filter>

	</appender>

	<!-- Fatal日志 -->
	<appender name="RollingFileFatal" type="log4net.Appender.RollingFileAppender" >
		<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
		<file value="logs\\" />
		<!-- 日志文件的命名规则 -->
		<datePattern value="yyyy-MM-dd/'Fatal.log'"/>
		<!-- 将日志信息追加到已有的日志文件中-->
		<appendToFile value="true" />
		<rollingStyle value="Size" />
		<maxSizeRollBackups value="100" />
		<maximumFileSize value="3MB" />
		<!-- 指定按日期切分日志文件 -->
		<rollingStyle value="Date"/>
		<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
		<staticLogFileName value="false" />
		<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%newline%newline【日志时间】:%d  【线程ID】:%thread    %newline【日志级别】:%-5p  %newline【日志对象】:%logger  %newline【日志内容】:%m%newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<param name="LevelMin" value="Fatal" />
			<param name="LevelMax" value="Fatal" />
		</filter>
	</appender>

	<!--数据库配置-->
	<appender name="logAppender_SqlServer" type="log4net.Appender.ADONetAppender">
		<bufferSize value="0"/>
		<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
		<!--链接数据库配置-->
			<connectionString value="Data Source=xxxxxxxx;Initial Catalog=xxxxxxxx;User ID=sa;Password=********;"/>
			<commandText value="INSERT INTO LogData ([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="50"/>
				<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="200"/>
				<layout type="log4net.Layout.PatternLayout">
					<conversionPattern value="%logger"/>
				</layout>
			</parameter>
			<parameter>
				<parameterName value="@message"/>
				<dbType value="String"/>
				<size value="2000"/>
				<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 比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录 如果没有定义LEVEL的值,则缺省为DEBUG-->
		<appender-ref ref="RollingFileDebug" />
		<appender-ref ref="RollingFileInfo" />
		<appender-ref ref="RollingFileWarn" />
		<appender-ref ref="RollingFileError" />
		<appender-ref ref="RollingFileFatal" />
		<appender-ref ref="logAppender_SqlServer" />		
		<level value="DEBUG" />

	</root>

</log4net>

到了这里,关于.NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • .Net6 Web Core API --- AOP -- log4net 封装 -- MySQL -- txt

    目录 一、引入 NuGet 包 二、配置log4net.config   三、编写Log4net封装类 四、编写日志记录类 五、AOP -- 拦截器 -- 封装 六、案例编写 七、结果展示 log4net  Microsoft.Extensions.Logging.Log4Net.AspNetCore    MySql.Data         ----  MySQL数据库需要 Newtonsoft.Json Autofac Autofac.Extensions.DependencyInj

    2024年02月14日
    浏览(34)
  • Asp.Net 6中使用Log4Net

    log4net Microsoft.Extensions.Logging.Log4Net.AspNetCore log4net配置参数此处不多赘述,只针对日志的输出格式参数conversionPattern配置做简要说明。 新建一个ITestLog4Net接口文件,并为其定义一个Log方法 并且新建一个TestLog4Net的自定义类,继承于ITestLog4Net,并实现该Log方法。 在Program中注入我

    2024年02月15日
    浏览(28)
  • Asp.Net 使用Log4Net (基础版)

    创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为\\\"Log4NetDemo\\\"。 打开NuGet包管理器控制台,并运行以下命令来安装Log4Net: 在Web.config文件中添加Log4Net的配置。将以下内容粘贴到Web.config文件中。 在Global.asax文件中,我们需要初始化Log4Net。在 Applicatio

    2024年02月15日
    浏览(35)
  • Asp.Net MVC 使用Log4Net

    在 ASP.NET MVC 中使用 Log4net 需要进行一些配置和代码集成。下面是在 ASP.NET MVC 中使用 Log4net 的步骤: 打开 NuGet 包管理器控制台,并运行以下命令来安装 Log4net: 在你的 ASP.NET MVC 项目中,创建一个名为 log4net.config 的文件(或者其他名称,只要后缀是 .config 即可),用于配置

    2024年02月15日
    浏览(20)
  • c# Log4net使用介绍

    注意:将log4net.config的属性“复制到输出目录”设置为“始终复制” Log4net 是一个用于 .NET 平台的日志记录框架,它可以帮助开发者在应用程序中记录和管理日志信息,以便于调试和监控应用程序的运行情况。下面是 Log4net 的配置和使用过程及案例: 安装 log4net 可以通过 Nu

    2024年02月02日
    浏览(64)
  • .NetCore之log4net的使用

    1.首先下载log4ne的包: 2.添加配置文件log4net.config 3.添加日志帮助类 4.在服务中采用单例生命周期注入 5.添加全局异常过滤器 6.注入过滤器服务 7.使用 日志截图:

    2024年02月11日
    浏览(25)
  • Asp.Net 使用Log4Net (SQL Server)

    首先,在你的SQL Server数据库中创建一个用于存储日志的表。以下是一个简单的表结构示例: 修改Log4Net配置文件(Log4Net.config),将 RollingLogFileAppender 替换为 AdoNetAppender 。配置 AdoNetAppender 以连接到数据库并将日志数据插入到上述创建的数据库表中。 注意 bufferSize value=\\\"10\\\"/ ,

    2024年02月15日
    浏览(27)
  • Log4net在.Net Winform项目中的使用

    Log4net是一个流行的日志记录工具,可以帮助开发人员在应用程序中实现高效的日志记录。本文将提供一个详细的分步骤示例,来帮助您在.Net Winform项目中使用Log4net。 打开Visual Studio工具。 选择您的.Net Winform项目,并右击选择“管理NuGet程序包”。 在NuGet程序包管理器中搜索并

    2024年02月12日
    浏览(25)
  • AI面试官:Asp.Net 中使用Log4Net (二)

    当面试涉及到使用log4net日志记录框架的相关问题时,通常会聚焦在如何在.NET或.NET Core应用程序中集成和使用log4net。以下是一些关于log4net的面试题目,以及相应的解答、案例和代码: 解答:可以使用log4net的多个appender来实现将日志信息同时输出到文件和数据库。可以配置一

    2024年02月15日
    浏览(32)
  • C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布

    connected Services 服务依赖(第三方) Properties 文件下 launchSettings.json 项目启动配置文件 wwwroad 存放静态文件 依赖项 管理Nuget程序包 appsettings.json 配置文件 C 业务逻辑运算–调用其他的服务做业务逻辑 M 实体对象,保存数据,数据传输 V 视图,表现层 第一步:寻找log4net 程序包

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包