【发布时间】:2015-03-27 17:05:28
【问题描述】:
我有一个存在很长时间(数小时到数月)的类的实例。它有一种将日志事件输出到文本文件C:\mylog.txt 的方法。如下
public MyClass
{
private static System.Diagnostics.TraceSource traceSource = new System.Diagnostics.TraceSource("My.Source");
private static void MyMethod()
{
traceSource.TraceEvent(System.Diagnostics.TraceEventType.Information, 0, "MyMethod called.");
}
}
这个C:\mylog.txt 可能会变得很大,我想删除它。但我无法删除该文件大概是因为它被traceSource 锁定(通过终止进程我可以删除该文件)。
System.Diagnostics.TraceSource 的所有示例都将其实例声明为如上所述的静态类成员。鉴于我的情况,可以用下面的方法初始化吗?
public MyClass
{
private static void MyMethod()
{
var traceSource = new System.Diagnostics.TraceSource("My.Source");
traceSource.TraceEvent(System.Diagnostics.TraceEventType.Information, 0, "MyMethod called.");
}
}
或者是否有特定原因必须将其声明为静态?难道我做错了什么?文件锁定是预期/必需的行为吗?
【问题讨论】:
-
也许您还可以从您的
.config文件中显示相关设置?
标签: c# .net tracesource