Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 清理跟踪_C#_Nlog_Trace - Fatal编程技术网

C# 清理跟踪

C# 清理跟踪,c#,nlog,trace,C#,Nlog,Trace,我在C#中有一个大型应用程序(>50k loc),它使用NLog进行跟踪,并且跟踪有些失控。一些库支持正确的跟踪(正确级别/详细程度),其他库只将所有内容发送到错误/信息级别 为了使所有错误反映正确的严重性,我需要对此进行清理。因此,当我真的想重新启用常规异常跟踪以跟踪生产问题时,我们基本上禁用了生产跟踪 解决这个问题的好工作流程是什么?是否有任何工具可以帮助以干净的方式跟踪所有跟踪语句?我目前计划使用re sharper并找到所有用法,然后花一些时间解决这个问题 更新:我在这里不清楚,我正在寻

我在C#中有一个大型应用程序(>50k loc),它使用NLog进行跟踪,并且跟踪有些失控。一些库支持正确的跟踪(正确级别/详细程度),其他库只将所有内容发送到错误/信息级别

为了使所有错误反映正确的严重性,我需要对此进行清理。因此,当我真的想重新启用常规异常跟踪以跟踪生产问题时,我们基本上禁用了生产跟踪

解决这个问题的好工作流程是什么?是否有任何工具可以帮助以干净的方式跟踪所有跟踪语句?我目前计划使用re sharper并找到所有用法,然后花一些时间解决这个问题

更新:我在这里不清楚,我正在寻找一些关于一般跟踪的好的指导方针,也许还有一些关于重新工具我的大型代码库的最佳方法的建议。

这就是我使用的(但我使用log4net,但我想是一样的)

.trace()-用于记录函数入口和出口以及大量数据转储等内容

for(a in l) { trace("List contents: "+ a) }
.debug()-是在考虑分支时打印一(一)行完整的信息。 一个函数中可能有多个调试语句,但不是一行。 当您阅读调试语句时,它应该读起来像是
功能

.debug("Checking if current account {} for user {} has more than {} amount", amount);
.debug("Account criteria met for account {} for user {}; making withdrawel of {}", otheramount);
.debug("Account {} debited by {} amount. Transaction key {}");
每个调试行都必须独立,并包含理解它所需的所有信息。只写一行“支票账户级别”是没有好处的,因为你的下一个问题是哪个账户?什么用户?多少钱

.info()-最多一个或两个pr函数,并且仅在高级范围内。数据必须完整

.info("Withdrawel procecss complete for account {}, user {}, for amount {}");
.warn()-非严重错误,数据完整,因此您可以将这些错误传递给邮件记录器,并偶尔检查该邮箱

.error()-与警告相同,但更重要。用户被主动阻止实现其目标,所以您希望更频繁地查看这些目标

.fatal()-如果可能,应直接转到sysadm的寻呼机,并提供有关服务器/计算机名称的信息


除此之外,请确保每个类都有自己的基于该类的日志记录程序,这样您就可以轻松地打开和关闭代码特定区域的日志,即使在运行时也是如此。

为了清楚起见,您是否对如何查找NLog trace语句的实例感兴趣,或者寻找一种更好的日志记录方法?