草庐IT

asynchronous-logging-with-log

全部标签

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# - 错误 "A template containing a class feature must end with a class feature"

我在VisualStudio2010下开发C#T4预处理模板时遇到以下编译错误:Atemplatecontainingaclassfeaturemustendwithaclassfeature 最佳答案 错误是由最后一个#>后的不可见空格引起的同样重要的是要记住,不可见的空格可能会导致其他难以理解的编译错误。如果您想查看更大的图片,请查看以下链接:AgoodexampleAgoodexplanaton,通过RyanPugh既然您已经意识到处理文本模板时不可见空间的危害有多大,我的建议是:让它们可见。如果您不知道如何操作,请参阅Jee

c# - 窗体 : How to bind the Checkbox item of a CheckedListBox with databinding

我有一种形式的数据绑定(bind)检查列表框,我想知道是否有可能将每个列表框项的复选框与对象的特定属性进行数据绑定(bind)。提前感谢您的帮助:)编辑:也许我的问题被误解了。我想知道是否可以对CheckedListBox的每个项目的复选框进行数据绑定(bind)。我知道如何将数据绑定(bind)到源以及如何通过迭代itmes以编程方式更改条目。我不知道是否有可能上课它实现了INotifyPropertyChanged,因此当“CheckedState”属性更改时,CheckedListBox会自行更新。 最佳答案 根据Samich

c# - 单元测试 Asp.Net WebApi : how to test correct routing of a method with [FromUri] parameters

我想测试这个Controller:[HttpGet]publicIListGetNotificationsByCustomerAndId([FromUri]string[]name,[FromUri]int[]lastNotificationID){return_storage.GetNotifications(name,lastNotificationID,_topX);}特别是,在此方法中,我想测试传入输入以形成请求Url的数组是否与进入routeData.Values的数组相同。如果对于单值参数(不是数组)它有效,但不适用于数组。如果我调试Values,我只会看到controll

c# - TFS2010 : Retrieve all changesets associated with a branch (full recursion)

这是关于TFS2010的mypreviousquestion和创建变更日志的可能性之后的。我以前使用标签来标识程序的版本,但是由于标签不是固定的时间点,因此现在使用分支。分支层次结构如下所示:如您所见,主干有两个不同的应用程序:APP_A(应用程序A)和APP_B(应用程序B)。两者几乎相同,但功能上有所不同。这是创建应用程序新版本(例如1.3版)的过程:修改了Maintrunk(添加了新功能,修复了错误……)从修改后的Maintrunk中,创建一个新分支:Maintrunk1.3APP_A分支可能会被修改,因此APP_A的独特功能将与v1.3的修改一起使用APP_B分支可能会被修改,

c# - LINQ 到 SQL : Delete entity (by ID) with one query

我使用LINQToSQL已经有一段时间了,当谈到从数据库中删除实体时,我总是调用表的.DeleteOnSubmit并传入实体。有时我发现自己在写类似这样的东西:db.Users.DeleteOnSubmit(db.Users.Where(c=>c.ID==xyz).Select(c=>c).Single());这当然会导致两个查询。一个获取符合条件的实体,然后另一个删除它。通常我有需要删除的记录的ID,我想知道是否有更直接的方法仅通过ID从表中删除行? 最佳答案 通过附加部分对象并将其删除,无需手动工具SQL即可执行此操作:varm

c# - Entity Framework : Problem associating entities with nullable field

我正在使用EntityFramework,我正在尝试将从数据库表创建的实体与从数据库View创建的实体相关联。因为EntityFramework无法自动推断数据库表和View之间的关系,所以我使用实体设计器来构建实体之间的“关联”。但是,如果外键是nullalbe类型,则会出现以下错误:错误113:多重性在关系“UsersView”中的角色“公司”中无效。因为DependentRole中的所有属性都可以为null,所以PrincipalRole的多重性必须为“0..1”。在我的场景中,我的UsersView中有一个可以为null的CompanyId外键(即用户可能没有公司)。使用可为空

c# - ASP.NET MVC 3 : DefaultModelBinder with inheritance/polymorphism

首先,对于大型文章(我首先尝试做一些研究)以及针对同一问题的技术混合(ASP.NETMVC3,Ninject和MvcContrib)感到抱歉。我正在使用ASP.NETMVC3开发一个项目来处理一些客户订单。简而言之:我有一些对象是继承自抽象类Order的对象,当对Controller发出POST请求时,我需要解析它们。如何解析正确的类型?我是否需要重写DefaultModelBinder类,或者有其他方法可以做到这一点?有人可以为我提供一些代码或其他链接来执行此操作吗?任何帮助将是巨大的!如果帖子令人困惑,我可以进行任何更改以使其清楚!因此,对于需要处理的订单,我具有以下继承树:pub

javascript - 哪个更适合 JavaScript 加载时间 : Compress all in one big file or load all asynchronously?

一个简单的问题,我不确定它是否有简短的答案!描述我有一个要加载到网站的JavaScript文件,这里有一些关于它们的注释:它们都来自同一个域(不需要跨域加载)它们在整个网站上都是相同的。有几个文件,例如jQuery,还有5个其他插件以及我自己的基于它们的应用程序脚本。它们全部压缩后的大小=224KB,(我将所有文件合并到一个文件中,然后使用YUICompressor2一次压缩它们问题我听说224KB放在一个文件中并不理想!它应该被分成几个文件,每个最大44KB..我不记得我是什么时候听到这个的,我不确定把它分成更多的文件是否有效,但224KB确实需要很长时间第一次加载,考虑到网站加载了