我有一个存在很长时间(数小时到数月)的类的实例。它有一种将日志事件输出到文本文件的方法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.");
}
}
或者是否有特定原因必须将其声明为静态?难道我做错了什么?文件锁定是预期/必需的行为吗?