Apache log4net库是一个帮助程序员将日志语句输出到各种输出目标的工具。 log4net是Microsoft®.NET运行时的优秀Apache log4j™框架的一个端口。在利用.NET运行时中的新功能的同时,我们保持框架在原理上与原始log4j类似。
现在Iam出现错误“无法在应用程序的.config文件中找到配置节'log4net'”。这是我在log4net.config文件中的代码: [
我正在寻找一种简单的解决方案来在我的ASP.Net MVC 1.0应用程序中将异常记录与错误处理结合在一起。我已经阅读了很多文章,包括在StackOverflow上发布在这里的问题,...
Log4Net以编程方式检查IsEnabledFor是否有Appender过滤器
我如何以编程方式检查某个附加过滤器的IsEnabledFor是否为true。这是我的配置: ]]]]] 我可能是错的,但是我不知道如何轻松地做到这一点。您可以做的是这样的: var hierarchy = LogManager.GetRepository() as Hierarchy; if(hierarchy != null) { var appenders = hierarchy.GetAppenders(); foreach( IAppender appender in appenders) { var appenderSkeleton = a as AppenderSkeleton if (appenderSkeleton != null) { IFilter filterHead = appenderSkeleton.FilterHead; // now analyse the filter chain } } } 我没有测试此代码,但是它应该或多或少地起作用。通过这种方式,您可以得到从AppenderSkeleton派生的所有附加程序的所有已配置过滤器链的头部。过滤器链的头部实现IFilter(与所有过滤器一样),它包含一个方法和一个属性: FilterDecision Decide(LoggingEvent loggingEvent); IFilter Next { get; set; } 现在,您可以创建具有您感兴趣的日志级别的LoggingEvent的实例,并使用Next属性遍历过滤器链,并通过调用FilterDecision测试每个过滤器。 这将告诉您追加程序是否会接受或拒绝日志记录事件,但是您需要知道,追加程序也可能会基于其他条件(例如,消息内容)进行过滤,因此,它不一定完全是“ IsEnabledFor”实现。 我知道这是一篇过时的文章,但是Stefan的回答有助于构建以下内容。我的用例是给定操作的性能自定义日志记录级别。显然,我们需要能够切换此级别的功能。 在我的特殊情况下,我们仅使用LevelMatchFilter,因此不会遇到其他过滤器类型的问题... /// <summary> /// evaulates if a custom log level is enabled. /// </summary> /// <param name="log"></param> /// <param name="level"></param> /// <returns></returns> public static bool IsLevelEnabled(this log4net.ILog log, log4net.Core.Level level) { var hierarchy = log4net.LogManager.GetRepository() as log4net.Repository.Hierarchy.Hierarchy; if (hierarchy != null) { var appenders = hierarchy.GetAppenders(); foreach (log4net.Appender.IAppender appender in appenders) { var appenderSkeleton = appender as log4net.Appender.AppenderSkeleton; if (appenderSkeleton != null) { log4net.Filter.IFilter filterHead = appenderSkeleton.FilterHead; //traverse the filter chain var currentFilter = filterHead; while (currentFilter.Next != null) { if (currentFilter is log4net.Filter.LevelMatchFilter) { //if the filter level matches the target if (((log4net.Filter.LevelMatchFilter)currentFilter).LevelToMatch == level) { return true; } } //move to the next filter currentFilter = currentFilter.Next; } } } } return false; }
log4net AdoNetAppender找不到ODBC的库文件
我正在尝试使用log4net的AdoNetAppender将记录写入事件历史表。我们使用ODBC是因为我们有各种数据库系统的客户,并且ODBC足以满足我们的需求。 ...
我有一个WPF应用程序,其中RollingFileAppender在将消息记录到日志文件中时工作良好。但是,我试图仅检索INFO级别的日志,并将其显示在WPF窗口中。我有...
我正在使用Visual Studio 2008,.net Framework 3.5,Windows 7上的解决方案。我创建了一个log4net库,该库可写入txt文件,并希望在我的解决方案的多个项目中使用它,并...
我有一个带log4net的WinForms应用程序。 app.config包含一个log4net配置部分。它包含如下设置:
上下文我正在设计应用程序的日志记录功能。寻找一种优雅且性能优良的解决方案。 (当然,我不会重新设计轮子:)。我...
在sql vs files vs aws中登录,这在c#应用程序中更快
[请帮助我了解哪种方法更适合记录性能。在sql vs files vs aws中登录,这在c#应用程序中更快
Log4NET错误:未能找到类型System.Text.UTF8Encoding
每当我的数据出现问题时,我都会尝试使用Log4Net的Rolling File Appender创建日志文件。因为我使用变音符号和非拉丁字符,所以我希望文件编码为...
我在log4net如何管理附加程序以及这些附加程序的消息方面遇到问题。当我将1条消息记录到1个记录器(对应于1个附加程序)时,消息仍然以ALL log结尾...
我可以删除备份日志文件名中文件扩展名之前的段吗? error-log-2019-10-25.1.log到error-log-2019-10-25.log
我想在我的日志文件名称中的扩展名之前删除段!有什么办法吗?我的结果是error-file.2019-10-25.1.log但我想要error-file.2019-10-25.log没有段'1';
试图让log4net与PowerShell一起使用(混合使用log4net配置文件)
我一直在努力让log net与PowerShell一起工作。 我有以下PowerShell代码,它使用配置文件提取log net,然后尝试创建一个简单的日志文...
XmlConfiguratorAttribute不能与this.Log和log4net一起使用?
我正在使用this.Log,并试图使应用程序开始使用以下属性: 但是,这似乎不起作用,当我打开log net调试时,我似乎找不到原因。 我查看了this.Lo...
我有一些使用Ninject的基本Web API代码。 到现在为止,我还没有真正记录任何东西,只是发送BadRequest对象以防万一。 在该代码正常工作的情况...
我有一个带有Quartz,Ninject和log net的控制台应用程序。 我的问题是我不明白为什么这段代码可以正常工作 日志有效 : 但是,当我尝试使用上下...
我对Azure Functions中的登录不满意。 我无法轻松地关联日志条目,似乎有些时候它会丢失日志条目并且日志的永久性不够。 我希望能够登录到SQL Se...
如何将log net与Unity d一起使用,以便日志输出进入编辑器控制台并记录到文件中 Unity似乎无法使用App.config,因此配置需要在代码中完成...
在IIS 8上运行asp.net Web应用程序时出错。'CrystalDecisions.Shared.SharedUtils'引发了异常。 ---> System.IO.FileLoadException:无法加载文件或程序集'log4net,版本= 1.2 ....
将Log4net与Google App Engine后端一起使用
我有一个使用Log net在本地收集事件的应用程序 用C 编写 。 现在,我想添加远程日志记录,以便聚集事件监视。 一种可能是使用GAE托管聚合服务。 但是,...