我有一组用Sql Profiler记录的翻转.trc文件.
mytrace.trc
mytrace_1.trc
mytrace_2.trc
mytrace_3.trc
Run Code Online (Sandbox Code Playgroud)
我可以使用此命令导入第一个:
use [my-database]
SELECT * INTO trace_folder
FROM::fn_trace_gettable('C:\mytrace.trc', 4)
Run Code Online (Sandbox Code Playgroud)
但是,这只会加载第一个文件,而不是全部四个.
我正在尝试使用System.Diagnostics做一些非常基本的日志记录.我想我会使用框中的内容,而不是像Log4Net或EntLib那样使用额外的依赖.
我已经全部成立,跟踪工作非常好.代码段:
Trace.TraceInformation("Hello World")
Run Code Online (Sandbox Code Playgroud)
App.config中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="TraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="Trace.log" traceOutputOptions="DateTime" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)
而我的小"Hello World"在我的Trace.log文件中显示得很好.但现在我想关闭跟踪,所以我深入了解MSDN并找到如何:配置跟踪开关
.我添加了<switches>元素,现在我的app.config看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="TraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="Trace.log" traceOutputOptions="DateTime" />
<remove name="Default" />
</listeners>
</trace>
<switches>
<add name="Data" value="0" />
</switches>
</system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)
本value="0"应关闭跟踪-至少如果你然后按照如何:创建和初始化跟踪开关,它告诉您添加这行代码:
Dim dataSwitch As New BooleanSwitch("Data", "DataAccess module")
Run Code Online (Sandbox Code Playgroud)
这对我来说没有意义:我只需要BooleanSwicth通过.config文件声明一个能够管理(禁用)跟踪的实例?我应该...在某处使用 ......对象? …
我正在使用安装了2012年4月更新的Visual Studio 2011测试版.我有我的调试选项 - >输出窗口> WPF跟踪设置所有值,包括资源字典关闭.但我仍然继续看到像这样的警告消息
System.Windows.ResourceDictionary Warning: 9 : Resource not found;
ResourceKey='CheckBoxCooperStyle1'
Run Code Online (Sandbox Code Playgroud)
如何调试此类警告,前提是它们不是误报?
在Trace.Write("");开发MVC或WCF应用程序时,您在哪里看到日志?什么是正确的地方?
我正在寻找一种方法来为所有现有的TraceSources添加和删除TraceListener.
(我不确定我的方法是否正确,我可以使用其他方法?基本上我想将所有跟踪输出记录到使用当前项目名称作为文件名的文件中.每当用户创建或重新打开项目时,我想要将日志附加到正确的文件.一次只能打开一个项目.)
代码示例:
我在我的应用程序中创建了几个TraceSource,每个类一个
public class Class1
{
private static readonly System.Diagnostics.TraceSource trace =
new System.Diagnostics.TraceSource("Class1");
}
public class Class2
{
private static readonly System.Diagnostics.TraceSource trace =
new System.Diagnostics.TraceSource("Class2");
}
Run Code Online (Sandbox Code Playgroud)
我现在想在运行时向我的所有traceSource添加或删除traceListener,如下所示:
private System.Diagnostics.TextWriterTraceListener myListener;
private onProjectOpen()
{
// user created a new project or opened an existing one
myListener = new System.Diagnostics.TextWriterTraceListener("log-"+projectname+".log");
ALL_TRACESOURCES.Add ( myListener) ; // <-- how to do this?
}
private onProjectClose()
{
// user closed a project
ALL_TRACESOURCES.Remove( myListener) ; // <-- how to do this? …Run Code Online (Sandbox Code Playgroud) 在Visual Studio中创建跟踪点时(右键单击断点并选择"When Hit ..."),对话框中包含此文本,强调我的:
您可以通过将变量或其他表达式放在花括号中来包含变量或其他表达式的值...
允许什么表达?
我一直试图找到一种方法来自动化GDB中跟踪程序控制流程的进度.
即使只是一种自动执行n命令的简单方法,您也可以查看调用例程的顺序.
我意识到你可以发出n xx是GDB逐步执行的次数的问题,但问题在于它显示的是命令而不是例程的地址!但是如果你n在GDB中手动按下(然后按回车键发出上一个命令),它会显示地址.
我在GDB中尝试了以下内容:
(after setting a breakpoint at say 0x0123456)
b *0x0123456
Run Code Online (Sandbox Code Playgroud)
GDB说<breakpoint 1 at 0x123456>.我键入:
commands 1
n 1000
c
end
Run Code Online (Sandbox Code Playgroud)
但它没有按预期循环,也没有显示地址位置:-(.
任何帮助,将不胜感激!当然必须简单的自动登录命令例程被调用??
我正在试图弄清楚如何管理我的事件ID.到目前为止,我已经手动将每个事件id放在每个方法中,并按顺序编号的方法中的每个步骤.这不允许我有效地过滤事件日志中的事件.为了在事件日志中使用过滤器,似乎每个记录的事件都必须具有自己的唯一ID.
我可以将它们全部存储在一个表中,并将描述链接到它们,但随后我的代码执行,我正在记录"魔术"毫无意义的事件代码.
我进行了谷歌搜索,但我似乎对用于解决此问题的正确关键字感到茫然.
提前致谢
从术语的角度来看,一般来说,"追踪"和"记录"之间有什么区别?
谢谢!