草庐IT

Creating-and-configuring-log-stre

全部标签

c# - 如何使用异步/等待方法管理类似 NDC 的 log4net 堆栈? (每个任务堆栈?)

在普通/同步/单线程控制台应用程序中,NDC.Push可以很好地管理“当前项目”(可能在多个嵌套级别,但对于本示例只有1个级别)。例如:privatestaticILogs_logger=LogManager.GetLogger("Program");staticvoidMain(string[]args){BasicConfigurator.Configure();DoSomeWork("chunk1");DoSomeWork("chunk2");DoSomeWork("chunk3");}staticvoidDoSomeWork(stringchunkName){using(NDC

c# - 使用 OR 而不是 AND 的 MultiDataTrigger

我正在尝试在我的Button上设置多个DataTriggers。我做了一些研究,发现MultiDataTrigger允许您执行此操作。如果CCTVPath==string.Empty或PermissionsFlag==false,我希望将Button的Visibility属性设置为false。这是我目前所拥有的;在我的代码隐藏中,我像这样设置了PermissionsFlag;publicboolPermissionsFlag{get;set;}privatevoidOnPageLoaded(objectsender,RoutedEventArgse){PermissionsFlag=f

c# - 无法加载文件或程序集 ':This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded

我在我的解决方案中有3个项目:BL、DL和UI。这三个项目的目标框架都是>NET4;我通过查看每个项目的属性页仔细检查了这一点。当我尝试在托管环境中运行网站时收到以下错误消息,但在本地运行时却没有。Couldnotloadfileorassembly'BL'oroneofitsdependencies.Thisassemblyisbuiltbyaruntimenewerthanthecurrentlyloadedruntimeandcannotbeloaded.提前致谢! 最佳答案 -转到IIS。-DefaultWebSite->Y

c# - Join List<string> 连同最后一个元素的逗号加 "and"

我知道我可以找到出路,但我想知道是否有更简洁的解决方案。总是有String.Join(",",lList)和lList.Aggregate((a,b)=>a+","+b);但我想要为最后一个将"和"作为其连接字符串添加异常(exception)。Aggregate()是否有一些我可以使用的索引值?谢谢。 最佳答案 你可以这样做stringfinalString=String.Join(",",myList.ToArray(),0,myList.Count-1)+",and"+myList.LastOrDefault();

c# - 林克 : Delete and Insert same Primary Key values within TransactionScope

我想在一个事务中用新记录替换数据库中的现有记录。使用TransactionScope,我有using(varscope=newTransactionScope()){db.Tasks.DeleteAllOnSubmit(oldTasks);db.Tasks.SubmitChanges();db.Tasks.InsertAllOnSubmit(newTasks);db.Tasks.SubmitChanges();scope.Complete();}我的程序抛出System.InvalidOperationException:Cannotaddanentitythatalreadyexis

c# - 从第三方重定向 log4net 日志

我有第三方使用如下所示的配置文件:第三方的代码如下:LogManager.GetRepository(Assembly.GetCallingAssembly()),configFile);LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);我希望第三方dll使用我自己的配置文件中定义的附加程序。我该如何管理?注意:第三方需要使用自己的配置文件,因为别人部分是强制性的,我不能将它们添加到我的文件中我可以修改第三方配置文件,我不能修改我的 最佳答案 有两个现

c# - log4Net 中记录器和根级别的区别?

我刚刚遇到了log4net配置中的两个部分:我可以知道在logger和root标签上指定级别有什么区别吗?它们有什么区别? 最佳答案 root表示应用中的所有日志,logger允许引用某类日志。使用它们,您可以仅为某些日志更改日志配置。查看带有评论的样本:在此示例中,所有日志均为INFO,类型为“File”(或命名为File)的日志为WARN。 关于c#-log4Net中记录器和根级别的区别?,我们在StackOverflow上找到一个类似的问题: https

c# - 3rd 方库引用不同版本的 log4net.dll

我有两个对我的应用程序至关重要的库,它们依赖于不同版本的log4net.dll。当我正在使用的第3方部分被调用时,在我的bin文件夹中尝试这两个dll会出现通常的错误:无法加载文件或程序集“log4net,Version=1.2.10.0,Culture=neutral,PublicKeyToken=1b44e1d426115821”或其依赖项之一。找到的程序集的list定义与程序集引用不匹配。(HRESULT异常:0x80131040)有没有一种方法可以让应用程序同时引用这两个dll?第三方dll是Windsor的IOC容器和Paypal的API,两者都对这个应用程序至关重要。

c# - 在 LINQ 中加入多个 where 子句作为 OR 而不是 AND

有没有加入LINQwhere子句作为OR?varints=new[]{1,3,5,7};varquery=fromiinintsselecti;query=query.Where(q=>q==3);query=query..Where(q=>q==7);我想要的是能够动态添加where子句但使它们使用OR而不是AND 最佳答案 如果您想继续使用强类型的Linq查询,您应该研究LinqKit和谓词构建。我已经将它用于类似的事情,并发现它与过滤器的And/Or堆叠配合使用效果很好。查看C#4.0/3.0inaNutshellexcerp

c# - 串行日志 : Log to different files

我正在将所有类型的事件记录到单个Json文件中,而不管LogLevel。现在我需要将一些自定义性能计数器记录到单独的Json文件中。如何在Serilog中完成此操作。我是否应该创建不同的记录器实例并在我要记录性能计数器的地方使用它?想将其与LibLog一起使用 最佳答案 您可以通过首先确保性能计数器事件标记有特定属性值(LibLog中的OpenMappedContext())或来自特定类型/命名空间来执行此操作。varlog=LogProvider.For()log.Info(...);配置Serilog时,一个sub-logger