C# 我可以使用TraceListener在initializeData中添加时间戳吗?
是否可以在TraceListener上的“initializeData”中添加时间戳 大概是这样的:C# 我可以使用TraceListener在initializeData中添加时间戳吗?,c#,timestamp,tracelistener,C#,Timestamp,Tracelistener,是否可以在TraceListener上的“initializeData”中添加时间戳 大概是这样的: <sharedListeners> <add name="AppSourceListener" type="System.Diagnostics.DelimitedListTraceListener" initializeData="c:\test%date.csv" traceOutputOptions="Pro
<sharedListeners>
<add name="AppSourceListener"
type="System.Diagnostics.DelimitedListTraceListener"
initializeData="c:\test%date.csv"
traceOutputOptions="ProcessId, DateTime, Callstack">
</add>
</sharedListeners>
我想在启动应用程序后,在每个日志中输入DateTime.。这在.config文件中是不可能的。要执行此操作,请从代码创建TraceListener:
//Remove all existing trace listeners
while (Trace.Listeners.Count > 0)
Trace.Listeners.RemoveAt(0);
//Add the new one with new file name
Trace.Listeners.Add(new DelimitedListTraceListener(@"mylogwithdatetime.log"));
这在某种程度上是可能的。 将任何内容作为“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="MyLog@date.txt"/>
</listeners>
</trace>
</system.diagnostics>
重复。如果使用TraceXXX方法,则答案为“是”:
//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))`;