这是可能的一种方式。 无论你把“initializeData”放到自定义跟踪监听器的构造函数中。所以,如果你有这样的事情
namespace MyLogger
{
public class DebugListener :TraceListener
{
string LogFileName;
public DebugListener (string filename)
{
filename = filename.Replace("@date",DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString());
LogFileName = filename;
}
}
}
和配置
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="dbgListener" type="MyLogger.DebugListener,MyLogger" initializeData="[email protected]"/>
</listeners>
</trace>
</system.diagnostics>
然后你会得到的文件名的东西作为MyLog20173.txt 虽然记住构造函数才会被调用一次,你必须重新启动应用程序来创建一个新的日志,但你可以随时处理你的代码中的逻辑,就像这个每月创建一个新的日志文件的逻辑
//get new log file name every month
string newFileName = string.Format("{0}_{1}{2}.txt","name",DateTime.UtcNow.Year.ToString(CultureInfo.InvariantCulture),DateTime.UtcNow.ToString("MM", CultureInfo.InvariantCulture))`;
重复。如果您使用TraceXXX方法,答案是肯定的:https://stackoverflow.com/questions/863394/add-timestamp-to-trace-writeline?rq=1 – MatthewMartin