相关疑难解决方法(0)

记录最佳实践

我想了解人们如何处理跟踪和登录实际应用程序的故事.以下是一些可能有助于解释您的答案的问题.

构架

你使用什么框架?

  • log4net的
  • System.Diagnostics.Trace
  • System.Diagnostics.TraceSource
  • 记录应用程序块
  • 其他?

如果使用跟踪,是否使用Trace.Correlation.StartLogicalOperation?

您是手动编写此代码,还是使用某种形式的面向方面编程来执行此操作?小心共享代码片段?

您是否在跟踪源上提供任何形式的粒度?例如,WPF TraceSources允许您在不同级别配置它们:

  • System.Windows - 所有WPF的设置
  • System.Windows.Animation - 专门为动画覆盖.

听众

你使用什么日志输出?

  • 文本文件
  • XML文件
  • 事件簿
  • 其他?

如果使用文件,您使用滚动日志还是仅使用单个文件?如何使日志可供人们使用?

查看

您可以使用哪些工具查看日志?

  • 记事本
  • 尾巴
  • 事件查看器
  • Systems Center Operations Manager/Microsoft Operations Manger
  • WCF服务跟踪查看器
  • 其他?

如果要构建ASP.NET解决方案,是否还使用ASP.NET运行状况监视?您是否在运行状况监视器事件中包含跟踪输出?那么Trace.axd呢?

自定义性能计数器怎么样?

.net asp.net logging trace

323
推荐指数
8
解决办法
16万
查看次数

我应该何时使用Tracing vs Logger.NET,Enterprise Library,log4net或Ukadc.Diagnostics?

如何在标准跟踪,Logger.NET,企业库,log4net或Ukadc.Diagnostics之间进行选择?

是否存在一个比另一个更合适的情况?那会是什么?(ASP.NET,控制台应用,Azure云,SOHO,企业...)

有什么好处或缺点?

我是否错过了其他主要的日志记录框架?

.net log4net enterprise-library system.diagnostics nlog

40
推荐指数
2
解决办法
2万
查看次数

使用log4net或NLog进行WCF日志记录/跟踪和活动ID传播

我在日志记录中看到了许多其他问题.最佳做法.什么日志记录平台最好.等等.这里有一些关于SO的链接以及关于该主题的非常好的讨论:

记录最佳实践

log4net vs TraceSource

.NET 3.5项目的最佳日志记录解决方案

.NET3.5日志记录

开始编辑:

键入这篇长篇文章后,我想我想弄清楚的主要是WCF日志/跟踪和活动ID传播与System.Diagnostics和TraceSources的紧密耦合.您是否可以使用第三方日志记录平台(如log4net或NLog)获得"良好"的WCF日志记录/跟踪和活动ID传播.如果你这样做,你怎么做?

有关ServiceTraceViewer的一些问题,请参阅本文的底部,

结束编辑.

我的问题的主题在任何这些帖子中都没有详细讨论.我对人们在日志记录和WCF方面做了什么感兴趣.如果您正在处理包含WCF服务的项目并且已登录项目,那么您是否需要特别努力来使用特定于WCF的日志记录功能.特别是,您是否尝试合并活动跟踪,活动传播和端到端跟踪等内容?如MSDN 中的这篇文章所述. 是MSDN关于传播活动的另一篇文章.

这篇文章很好地解释了如何使用System.Diagnostics TraceSources进行活动跟踪,活动传播和端到端跟踪.它显示了如何配置WCF以通过app.config/web.config文件"打开"这些选项.WCF在内部使用TraceSources来记录通信结果.

下面是一些示例代码(来自上面链接的第二篇MSDN文章),它或多或少地显示了如何通过System.Diagnostics和TraceSources实现活动传播:

TraceSource ts = new TraceSource("myUserTraceSource");
Guid oldID = Trace.CorrelationManager.ActivityId;
Guid traceID = Guid.NewGuid();
ts.TraceTransfer(0, "transfer", traceID);
Trace.CorrelationManager.ActivityId = traceID; // Trace is static
ts.TraceEvent(TraceEventType.Start, 0, "Add request");

double value1 = 100.00D;
double value2 = 15.99D;
ts.TraceInformation("Client sends message to Add " + value1 + ", " + value2);
double result = client.Add(value1, value2);
ts.TraceInformation("Client receives Add response '" + …
Run Code Online (Sandbox Code Playgroud)

wcf logging log4net system.diagnostics nlog

21
推荐指数
1
解决办法
1万
查看次数

Log4Net优于TraceListener的优势是什么?

好吧,我是.net的新手,我一直在寻找一些可用于c#的登录工具.我发现,Apache Foundation创建的TraceListener和Log4Net即使在大型项目中也有广泛的用途.但这两者之间的主要区别是什么?Log4Net有哪些优势?在什么情况下我应该使用Log4Net和TraceListener?

包括,Log4Net和TraceListener有哪些缺点?他们的突破点是什么?

.net c# log4net tracelistener

7
推荐指数
1
解决办法
3467
查看次数