标签: trace

如何确定是否使用TRACE或DEBUG标志编译.NET程序集

有没有办法找出是否已在未修改程序集的情况下使用TRACE或DEBUG标志集编译程序集?

.net trace assemblies release-mode

10
推荐指数
2
解决办法
6502
查看次数

System.Net(HttpWebRequest)跟踪而不使用文件或app.config?

我想在我的应用程序中捕获某些但不是全部的HttpWebRequest流量以进行调试.它是由IIS托管的Web服务.

我已阅读如何:配置网络跟踪.这很好用,但我不希望将跟踪指向文件,因为文件系统可能存在权限问题,数据敏感性等.我想直接捕获内存中的某些东西,我随后可以检查或加密和电子邮件.最好不要对app.config文件进行任何更改.

我尝试了以下内容,但显然我错过了将TextWriterTraceListener绑定到System.Net的步骤.如何将System.Net流量捕获到我的StringWriter中?

StringWriter sw = new StringWriter();
TextWriterTraceListener myListener = new TextWriterTraceListener(sw);
Trace.Listeners.Add(myListener);
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("http://www.microsoft.com");
HttpWebResponse resp = (HttpWebResponse) req.GetResponse();
Stream s = resp.GetResponseStream();

byte[] buf = new byte[4096];
while (s.Read(buf, 0, buf.Length) > 0) ;
s.Close();

myListener.Flush();
sw.Flush();
Run Code Online (Sandbox Code Playgroud)

编辑:具体来说,我想在运行时做此等价的,不过我不想输出去network.log,我想它去我已经建立了用于此目的的字符串缓冲区.

<configuration>

<system.diagnostics>

<sources>
  <source name="System.Net.Sockets" tracemode="includehex">
    <listeners>
      <add name="System.Net.Sockets" type="System.Diagnostics.TextWriterTraceListener" initializeData="network.log" />
    </listeners>
  </source>
</sources>

<switches>
  <add name="System.Net.Sockets" value="Verbose"/>
</switches>

<trace autoflush="true" />
</system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)

c# trace asp.net-2.0 httpwebrequest

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

Visual Studio测试中的跟踪(从NUnit迁移)

在NUnit中,我习惯在测试中编写Trace语句,并将它们显示在NUnit gui的trace选项卡中.

在一个新项目中,我正在转向Visual Studio Professional Addition中的内置单元测试,我相信它是mstest.exe的接口.

测试代码:

<TestMethod()>
Public Sub TestPagesInheritFromBasePage()
    Dim webUI As Assembly = Assembly.GetAssembly(GetType(WebUI.BasePage))
    Dim badPages As New List(Of String)
    For Each t As Type In webUI.GetTypes()
        Debug.Write(t.Name + ", ")
        Trace.Write(t.Name + ", ")
        If t.BaseType Is GetType(System.Web.UI.Page) Then badPages.Add(t.Name)
    Next
    Debug.Flush()
    Trace.Flush()
    If badPages.Count > 0 Then
        Assert.Fail("{0}: do not inheriting from BasePage", String.Join(", ", badPages.ToArray()))
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我遇到了失败,所以我知道Debug.Write和Trace.Write行正在执行.

我已经阅读了MSDN文档来编写这些测试,如果在命令行执行,我可以通过以下方式查看跟踪输出:

mstest.exe /testcontainer:mydll.dll /detail:debugtrace
Run Code Online (Sandbox Code Playgroud)

但是,在visual studio中直接执行测试时,我找不到跟踪输出.是否有另一种在单元测试期间输出信息的首选方法,或者我是否缺少在visual studio中查看跟踪信息的选项?

答案: 下面的两个答案(Console.Write和Debug.Write)都有效,结果在测试结果详细信息中(底部的TestResult窗格,右键单击测试结果并转到TestResultDetails).另外,我在项目属性中设置了Debug和Trace常量.

trace nunit unit-testing mstest visual-studio

10
推荐指数
2
解决办法
8024
查看次数

如何在没有DDMS的情况下打开.trace文件格式(traceview)?

我想保存方法调用的日志.Traceview支持该功能,我可以获得.trace文件格式.

但是,我需要在没有DDMS的情况下打开.trace文件格式.

如果我无法在没有DDMS的情况下打开.trace文件,我如何获取方法调用的日志?(最好是.txt文件格式.)

谢谢.

android trace profiling ddms

10
推荐指数
2
解决办法
9964
查看次数

如何在跟踪中包含用户友好的时间戳

我试图理解Trace.Writevs Trace.TraceInformation和应该使用哪个之间的区别.

我尝试配置traceOutputOptions时间戳/日期时间.我只需要为我正在编写的每条消息添加时间戳.我得到的日期时间有点混乱,因为它在下一行中附加应用程序名称和较少用户友好的时间戳,如下所示.

ConsoleApplication1.exe Information: 0 : Hello  - Trace!  
DateTime=2011-01-31T14:26:11.1538509Z  
ConsoleApplication1.exe Error: 0 : Hello  - Trace!  
DateTime=2011-01-31T14:26:11.1538509Z  
Run Code Online (Sandbox Code Playgroud)

我所需要的就像是

2011-01-31 11:32 Information: Hello - Trace!  
2011-01-31 11:33 Error: Hello - Trace!
Run Code Online (Sandbox Code Playgroud)

App.config这样做有什么简单的方法吗?

c# trace system.diagnostics

10
推荐指数
2
解决办法
2963
查看次数

了解Trace如何在C#中工作

我想了解跟踪是如何工作的

我创建了一个简单的新Web项目.这是我可以使用的代码

// Create a trace listener for the event log.
EventLogTraceListener myTraceListener = new EventLogTraceListener("myEventLogSource");

// Add the event log trace listener to the collection.
Trace.Listeners.Add(myTraceListener);

// Write output to the event log.
Trace.WriteLine("Test output");
Run Code Online (Sandbox Code Playgroud)

我正在从这个msdn链接中获取帮助

我的web.config中的设置如下

 <system.diagnostics>
 <trace autoflush="false" indentsize="4">
  <listeners>
    <add name="myListener"
      type="System.Diagnostics.EventLogTraceListener"
      initializeData="TraceListenerLog" />
  </listeners>
 </trace>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,我不知道这个日志记录发生在哪里我检查了事件查看器,在"应用程序和服务日志"下,我期望创建一些名为"myEventLogSource"的新日志但是没有发生.

请任何人解释一下这是如何工作的.

c# trace

10
推荐指数
1
解决办法
9713
查看次数

为什么iosnoop(IO snooping磁盘上的文件)返回带有问号的路径?

如果我在跑

sudo iosnoop | grep "gem"
Run Code Online (Sandbox Code Playgroud)

然后在另一个终端运行

gem env
Run Code Online (Sandbox Code Playgroud)

在iosnoop终端,我看到:

dtrace: error on enabled probe ID 4 (ID 1106: io:mach_kernel:buf_strategy:start): illegal operation in action #3 at DIF offset 0
dtrace: error on enabled probe ID 4 (ID 1106: io:mach_kernel:buf_strategy:start): illegal operation in action #3 at DIF offset 0
dtrace: error on enabled probe ID 4 (ID 1106: io:mach_kernel:buf_strategy:start): illegal operation in action #3 at DIF offset 0
dtrace: error on enabled probe ID 4 (ID 1106: io:mach_kernel:buf_strategy:start): illegal operation in …
Run Code Online (Sandbox Code Playgroud)

io macos trace path dtrace

10
推荐指数
2
解决办法
1659
查看次数

ASP.NET Web API日志记录和跟踪

一旦使用适用于ASP.NET Web API的log4net进行日志记录和跟踪设置,需要记录和/或跟踪的具体方面是什么?

我从Web API的角度来看这个问题.是否有一系列必须记录这个必须跟踪这个.比如,INFO跟踪控制器的请求,任何NULL检查等.

是否有可以验证的引用列表,以确保ASP.NET Web API中的最佳日志记录和跟踪覆盖率?

c# logging log4net trace asp.net-web-api

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

跟踪对共享库的调用

我正在Linux下开发一个程序.

出于调试目的,我想跟踪从我的程序到某个(最好是共享的)库的所有调用.(我不想跟踪库内发生的调用.)

对于系统调用,有一些strace.是否有任何工具可以跟踪对共享库的调用?

trace shared-libraries strace

10
推荐指数
1
解决办法
8855
查看次数

跟踪方法执行时间

我试图在我的应用程序中"注入"自定义跟踪方法.

我希望尽可能优雅,不需要修改现有的大部分代码,并且可以轻松启用/禁用它.

我能想到的一个解决方案是创建一个自定义Attribute,我将它附加到我想要跟踪的方法.

基本理念:

public class MethodSnifferAttribute : Attribute
{
    private Stopwatch sw = null;

    public void BeforeExecution()
    {
        sw = new Stopwatch();
        sw.Start();
    }
    public void ExecutionEnd()
    {
        sw.Stop();
        LoggerManager.Logger.Log("Execution time: " + sw.ElapsedMilliseconds);
    }
}

public class MyClass
{
    [MethodSniffer]
    public void Function()
    {
        // do a long task
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有任何现有.NET属性为调用/结束方法提供回调?

.net c# asp.net trace .net-trace

10
推荐指数
1
解决办法
6069
查看次数