草庐IT

m_debug_log

全部标签

c# - 从字符串创建强类型 log4net 级别

我注意到了log4net有一个强类型Levelclass.有谁知道是否有办法通过解析日志级别字符串来创建Level对象?例如:我想将错误级别字符串“ERROR”解析为等效的log4net.Core.Level.Error对象,对于其他日志记录级别也是如此。我编写了自己的(天真的)方法来执行此操作(见下文),但我希望log4net内部有一些东西可以为我执行此操作。谢谢!publicstaticLevelParseLevel(stringlevel){switch(level.ToUpperInvariant()){case"ALERT":returnlog4net.Core.Level.

c# - 在 log4Net 中关闭记录器实例的正确方法

我有一个类,我为其每个实例创建了一个新的记录器,并为其附加了一个缓冲区附加程序和一个动态附加程序。一切都在运行时完成,没有从配置文件中提取任何信息。现在要在类的自定义处置方法中释放资源,我需要关闭该特定记录器并释放其所有附加资源以避免任何内存泄漏。目前我一直在做的是至少刷新文件附加程序并写入所有日志信息,但既不会释放对该特定日志文件的锁定,也不会释放其任何资源。关闭记录器而不关闭其他正在处理的事件记录器的正确方法是什么log4net.ILoglog=log4net.LogManager.GetLogger(loggerName);foreach(IAppenderiappinlog.L

c# - 为asp.net MVC3项目配置log4net

好的,所以我了解了如何在我的应用程序中配置log4Net,但是现在首先如果应用程序是发布版或调试版,我想通过区分日志级别来改进配置,我该怎么做?第二,如果我的项目中有一个名为LOG的文件夹,我该如何设置配置,而不是使用我的应用程序的物理文件夹?例如代替:用过或 最佳答案 文档很简单:file:thefullorrelativepathtothelogfile.因此,您只需要完整路径,如C:\physicalpath\LOG\Log.log或相对路径,这需要以dotchar.开头,如.\App_Data\Log4Net.Logs也可以

c# - 配置节 'log4net' 缺少节声明

我正在努力将log4net添加到我的MVC5项目中。我做了以下事情;Install-Packagelog4net已成功安装(我假设)log4net我在配置部分的web.config中添加了以下内容;并且我在web.config的configSections中添加了以下内容;我已将以下内容添加到我的Global.asax.cs;log4net.Config.XmlConfigurator.Configure();解决方案可以编译,但是当我尝试运行我的程序时出现错误;HTTPError500.19-InternalServerErrorTherequestedpagecannotbeacc

c# - Log4Net 性能

我编写了一个C#应用程序,它在一个循环中持续运行,多个线程写入一个log4net文件。问题是应用程序运行的时间越长,完成循环所需的时间就越多。我运行了ANTS性能分析器,并注意到大部分CPU时间都花在了使用log4.net进行日志记录上。日志越详细,它使用的CPU就越多,30分钟后它就使用了100%的CPU。如果我禁用日志记录,循环所花费的时间会随着时间的推移保持不变。我查看了Windows性能监视器,物理磁盘大部分时间处于空闲状态。我已尝试将日志记录保持在最低限度,但即使日志记录量相对较少,我仍然遇到问题。这是我的Log4net.xml配置文件的示例:我使用来自每个记录对象的相同记录

c# - 为什么要在 log4net 中调用 IsDebugEnabled?

我很好奇为什么我看到人们编写如下log4net日志记录代码:if(_logger.IsDebugEnabled){_logger.Debug("Somedebugtext");}我已经完成了log4net的反汇编,并且调用Debug会再次调用相同的代码以查看它是否在实际记录之前启用,因此IsDebugEnabled调用是不必要的,实际上是重复的代码。人们这样做有什么原因吗?也许在旧版本中曾经需要但不再需要的旧模式?还是有正当理由?或者也许人们只是不知道他们不需要这样做?其他级别(信息、错误、警告、最佳等)也有同样的行为。 最佳答案

c# - 在项目中添加一个EXE文件,这样它就会像DLL一样被复制到Bin/Debug文件夹中?

我需要我的C#项目在执行期间启动另一个EXE程序。这个可执行文件需要放在与构建解决方案时放置的C#程序相同的文件夹中,例如,调试文件夹——就像DLL文件引用——这样当我的团队成员从TFScheckout项目时,并且调试,当我的C#代码尝试调用它时,找到了EXE。但是,EXE本身不是引用,因此不能将其添加为引用,即使我希望以与引用相同的方式复制它。这个问题有没有合理的解决方案?提前致谢。 最佳答案 您可以转到文件的属性,并在“复制到输出目录”下选择,copyifnewer 关于c#-在项目

c# - 使 NLog.config 文件从 (d :\dev) instead of "\bin\debug\"

我在特定的DLL中使用Nlog进行日志记录。然后在另一个应用程序中使用该DLL(使用System.Reflection.Assembly.LoadFrom(path+a.dll)动态加载它)。我手动将Nlog.dll和Nlog.config文件放在Path文件夹中,应用程序可以正常执行,但不会记录任何消息。但是,当我继续将Nlog.config文件手动放入应用程序目录(\bin\debug\)时,会记录消息。谁能告诉我如何将Nlog.Config的搜索位置指向不同于\bin\debug\的目录(d:\dev)。 最佳答案 下面是我如

c# - 在对象内部以 Debug模式搜索

调试C#应用程序时是否可以在对象内部搜索值和/或其他字段?我正在寻找可以在多个级别下钻对象的深度搜索。我正在寻找的是一种在非常复杂的对象(调试时,例如在“快速监视”窗口中)内部进行搜索(如F3用于文档搜索)的方法。 最佳答案 你可以使用OzCode(VisualStudio的附加组件),它可以让您search对于您想从悬停数据提示或QuickWatch窗口中查看的成员。请参见以下屏幕截图中的示例:全面披露:我是“OzCode”的共同创建者。 关于c#-在对象内部以Debug模式搜索,我们

c# - 在 Visual Studio 的 Debug模式下获取问号而不是属性名称和值

我的问题是:在VisualStudio的Debug模式下,我看不到属性名称及其值。有什么建议么?UPD此错误/功能可在大学PC中重现。UPD(15.06.2012)基类放在独立的库中。基类是抽象的。并且...在对源文件(在屏幕截图中)进行更改然后运行项目之后,Debug两次工作正常。请注意立即窗口无法计算此表达式。MailProcessingViewModelContext继承了我在UPD顶部提到的那个基类。 最佳答案 这是VisualStudio中的一个错误,当您使用鼠标滚动属性列表时会导致该错误。请点击菜单底部的向下箭头。