相关疑难解决方法(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万
查看次数

如何跨类使用TraceSource

我最近在研究TraceSource的文档.Microsift说TraceSource是一种新方法,应该使用而不是旧的Trace类.

// create single TraceSource instance to be used for logging
static TraceSource ts = new TraceSource("TraceTest");

// somewhere in the code
ts.TraceEvent(TraceEventType.Warning, 2, "File Test not found");
Run Code Online (Sandbox Code Playgroud)

现在我的问题.你有大型项目,有几个程序集,你有很多类.假设您想跟踪跨类传播的特定功能.明显的想法是你需要创建一个特定的TraceSource.

1)要使用Tracesource,我需要先创建实例.什么是MS考虑跨各种类或程序集共享此实例?我应该创建一个具有静态单例属性的虚拟类吗?在那种情况下你在做什么

2)为什么我需要TraceSource实例?配置文件中描述了每个属性.基于Trace类的旧逻辑不需要某些实例,只提供了使用静态方法的方法.

.net c# logging trace

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

.net Diagnostics最佳实践?

我们最初没有使用任何日志记录或调试跟踪,但在花了几周时间追踪一些数据损坏后,我们决定将生成所需的Debug.Write和Trace以及Debug.Assert

那么现在问题是使用调试和跟踪日志记录的最佳实践是什么.我只是在寻找一些通用的东西.

public void AddRectodatabase(object record)
{
   Debug.WriteLine(record.ToString());
   Trace.WriteLine(record.ToString());

   // Add it to databse

   Debug.Assert(true, "Use this on case by case basis");
}
Run Code Online (Sandbox Code Playgroud)

这对于一般用途是否足够好,我在那里做错了吗?

我们希望坚持.net System.Diagnostics而不是像log4net这样的其他选择.

System.Diagnostics中还有其他有用的东西吗?

.net system.diagnostics

16
推荐指数
2
解决办法
6190
查看次数

.Net TraceSource/TraceListener框架是否具有与log4net的Formatters类似的东西?

我已经开始使用内置的TraceSource和TraceListener类,我想独立于TraceSources和TraceListeners修改事件的输出格式.TraceListeners似乎应用了自己的格式.是否可以完全更改格式而不为我使用的每个TraceListener创建一个新类?

.net c# trace

6
推荐指数
1
解决办法
3900
查看次数

记录的最佳方法是什么?

我的(本地,windows/mono)应用程序将重要事件记录到文本文件中.在突然崩溃/失败/强行退出的情况下,没有数据应保持不成文(尽可能).因此,我目前使用简单的追加文本文件方法:

Public Shared Sub LogAppEvent(ByVal EventData As String)
    Dim Config As ConfigHandler = ConfigHandler.GetSingleton()
    Dim AppLog As New IO.StreamWriter(Config.GetUserFilesRootDir() & ConfigOptions.AppLogName, True)
    AppLog.WriteLine(String.Format("[{0}] {1}", Date.Now.ToString(), EventData))
    AppLog.Close()
End Sub
Run Code Online (Sandbox Code Playgroud)

这是非常次优的,但是日志事件非常罕见.你会建议搬到System.Diagnostics伐木班吗?

或者你可以建议另一个解决方案?

.net vb.net logging

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

无法理解.net 2010跟踪和app.config

在我的app.config中,我想设置3个跟踪级别(交换机?):详细,警告和无.在代码的调试版本中,我想要在我想要警告的版本中激活详细开关.在特殊情况下,我的应用程序用户可以修改配置文件以禁用所有跟踪.

我希望在控制台上输出调试跟踪,而发布只跟踪到日志文件.

我写了以下内容:

[...]
<system.diagnostics>
        <sources>
            <!-- This section defines the logging configuration for My.Application.Log -->
          <source name="debug" switchName="debug">
            <listeners>
              <add name="FileLog"/>
              <add name="console"/>
            </listeners>
          </source>

          <source name="release" switchName="release">
            <listeners>
              <add name="FileLog"/>
            </listeners>
          </source>

          <source name="silent" switchName="none">
            <listeners/>
          </source>
        </sources>


        <switches>
            <add name="debug" value="Verbose"/>
            <add name="release" value="Warning"/>
            <add name="none" value="Off"/>
        </switches>


        <!--<sharedListeners>
            <add name="FileLog" type="System.Diagnostics.TextWriterTraceListener"  traceOutputOptions="DateTime" initializeData="felix.log"/>
            <add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
        </sharedListeners>-->

        <trace autoflush="false" indentsize="4">
          <listeners>
              <add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
              <add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false"/>
              <remove name="Default"/>
          </listeners>
        </trace> …
Run Code Online (Sandbox Code Playgroud)

.net logging trace system.diagnostics visual-studio-2010

5
推荐指数
1
解决办法
3996
查看次数