C# .Net Core log4net 使用方法

这篇具有很好参考价值的文章主要介绍了C# .Net Core log4net 使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

前排提示,觉得墨迹的朋友可以直接看解决方法部分!

啊,许久没有这般耗时耗力了。。。鼓捣了一下午,不断地查阅资料,终于成功把log4net配置成功了。不过,笔者对log4net的底层并不了解,这里只是简单记录学习过程,给同样的初学者提供些许方便。

二、探索过程

在查阅资料的过程中,发现了一些概念,但最后没用上。可能是版本更迭的原因,更有可能是单纯地没用上而已。

1.log4net.config配置文件中的节点配置,不加也可

<configsections>
  <section name="log4net" type="log4net.config.log4netconfigurationsectionhandler, log4net" />
</configsections>

2.同样是配置文件,里面的logger。没有特殊需求的话,不用单独设置logger标签,共用root标签配置就可以了

3.现在用的版本是.net core 5.0或6.0之类的,.net framework不太用了,而这两个大版本框架的目录结构有一些不同。网上的一些log4net攻略就是在framework版本基础上做的,里面会看见这样的一句话

“可以在项目的assemblyinfo.cs文件里添加以下的语句”

[assembly:log4net.config.domconfigurator(configfile="filename",,watch=true/false)]

这个文件在core中是没有的,然后笔者又去千方百计地寻找这句话,在core版本中应该放在哪里

最终得到的结果是,这句话在core版本,要以“标签”的形式,写在namespace上面,全局写一次就可以了。

笔者试验后,的确如此。当时成功之后欣喜若狂。可后来发现,这句话也用不上,完全不用加。。。。。

4.还有一个坑。笔者当时试验是在winform上做的,那配置标签里的就用LogFileAppender来输出到本地文件里就好。然后,笔者发现用ConsoleAppender可以输出log到命令行里,但是怎么试验都未成功。后来才发现,输出到命令行是指命令行项目,而不是说会输出到项目的output中。。。。。。

5.log建库,这个也用不上,当然只是自己用不上

三、解决办法

1.先用nuget下载log4net的包(VS里已经集成了nuget功能),项目能正常引用就是成功了

2.这里笔者给出网上摘抄的配置文件,其中有一些笔者自己的修改,但不包括数据库配置。关于配置文件的说明网上有很多,大家可以自行查找。只是想练手的小伙伴,直接复制去用就好。生成的log文件在运行目录里面

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<log4net >
		<appender  name ="LogFileAppender"  type ="log4net.Appender.FileAppender" >
			<file  value ="log4netfile.txt"   />
			<appendToFile  value ="true"   />
			<layout  type ="log4net.Layout.PatternLayout" >
				<conversionPattern  value ="%date %-5level %logger property:[%property{NDC}] - description :%message%newline"   />
			</layout >
		</appender >
		<appender  name ="ConsoleAppender"  type ="log4net.Appender.ConsoleAppender" >
			<layout  type ="log4net.Layout.PatternLayout" >
				<conversionPattern  value ="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"   />
			</layout >
		</appender >
		<appender  name ="EventLogAppender"  type ="log4net.Appender.EventLogAppender" >
			<layout  type ="log4net.Layout.PatternLayout" >
				<conversionPattern  value ="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"   />
			</layout >
		</appender >
		<appender  name ="AdoNetAppender_Access"  type ="log4net.Appender.AdoNetAppender" >
			<connectionString  value ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb"   />
			<commandText  value ="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)"   />
			<parameter >
				<parameterName  value ="@logDate"   />
				<dbType  value ="String"   />
				<size  value ="240"   />
				<layout  type ="log4net.Layout.PatternLayout" >
					<conversionPattern  value ="%date"   />
				</layout >
			</parameter >
			<parameter >
				<parameterName  value ="@thread"   />
				<dbType  value ="String"   />
				<size  value ="240"   />
				<layout  type ="log4net.Layout.PatternLayout" >
					<conversionPattern  value ="%thread"   />
				</layout>
			</parameter>
			<parameter>
				<parameterName  value ="@logLevel"   />
				<dbType  value ="String"   />
				<size  value ="240"   />
				<layout  type ="log4net.Layout.PatternLayout" >
					<conversionPattern  value ="%level"   />
				</layout>
			</parameter>
			<parameter>
				<parameterName  value ="@logger"   />
				<dbType  value ="String"   />
				<size  value ="240"   />
				<layout  type ="log4net.Layout.PatternLayout" >
					<conversionPattern  value ="%logger"   />
				</layout>
			</parameter>
			<parameter>
				<parameterName  value ="@message"   />
				<dbType  value ="String"   />
				<size  value ="240"   />
				<layout  type ="log4net.Layout.PatternLayout" >
					<conversionPattern  value ="%message"   />
				</layout>
			</parameter>
		</appender>
		<root >
			<level value="ALL"/>
			<appender-ref  ref ="LogFileAppender"   />
			<appender-ref  ref ="ConsoleAppender"   />
			<appender-ref  ref ="EventLogAppender"   />
			<appender-ref ref="AdoNetAppender_Access" />
		</root>
	</log4net>
</configuration>


3.在主方法中,初始化配置

XmlConfigurator.Configure(new FileInfo("你的log4net.config配置文件位置"));

4.在想要使用log的类中,先实例化log,然后调用对应的方法,输入自己需要的信息即可

//这是实例化
private static readonly ILog log = LogManager.GetLogger(typeof(这里放入当前类名));

//这是使用
log.info("自己需要的信息");

5.以上这些步骤就可以使用log了。这里使用的是log4net官方提供的方法,就是实例化那步。如果你有更细致的需求,可以自己写个封装,然后实例化自己的。文章来源地址https://www.toymoban.com/news/detail-440832.html

到了这里,关于C# .Net Core 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日
    浏览(37)
  • Asp.Net 6中使用Log4Net

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

    2024年02月15日
    浏览(29)
  • 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日
    浏览(36)
  • Asp.Net MVC 使用Log4Net

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

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

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

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

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

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

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

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

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

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

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

    2024年02月14日
    浏览(40)
  • Asp.Net 6.0集成 Log4Net

    需要安装NuGet包,明细如下: log4net Microsoft.Extensions.Logging.Log4Net.AspNetCore 文件名称 log4net.config ,默认可以放在与启动类 Program.cs 同级目录下 在启动类中进行配置(Program.cs)

    2024年02月07日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包