id
。
,但是,如果我生成另一个错误,则将错误添加到原始日志文件中,但也会创建另一个文件,第一个重复的文件未接收新错误。 很明显,我已经实现了错误的记录,但是我看不出为什么会创建重复的日志。如果我生成另一个错误,则会创建另一个文件。但原始日志文件一直在更新,非常困惑。
没有我的DB/Connection的细节,这是一个非常简单的复制,因为我认为娱乐不需要它。
62-60ae-3423sfd4534-42342-7sdfsfh4s3c142Commission
如果我运行此操作,我收到2个文件,我的日志文件和一个包含
private void Login_Btn_Click(object sender, EventArgs e)
{
bool userExists = false;
// Logging (get users application data path)
var roamingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
var filePath = Path.Combine(roamingDirectory, "Commission.log");
Trace.Listeners.Add(new TextWriterTraceListener(filePath, "myListener"));
try
{
if(!userExists)
{
// Logging
Trace.TraceInformation(DateTime.Now.ToShortDateString() + " | " + DateTime.Now.ToLongTimeString() + " - User login failed. Exception: User ID not found");
}
}
catch(Exception ex)
{
// Logging
Trace.Listeners.Add(new TextWriterTraceListener(filePath, "myListener"));
Trace.TraceInformation(DateTime.Now.ToShortDateString() + " | " + DateTime.Now.ToLongTimeString() + " - " + ex.ToString());
}
Trace.Flush();
}
在这里我创建配置文件以使其全部工作
Commission Information: 0 : **/**/**** | **:**:** - User login failed. Exception: User ID not found
您获得比预期更多的文件的原因是您多次使用
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\\Commission.log" />
<remove name="Default" />
</listeners>
</trace>
<sources>
<source name="TraceTest"
switchName="sourceSwitch"
switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="console"
type="System.Diagnostics.ConsoleTraceListener">
<filter type="System.Diagnostics.EventTypeFilter"
initializeData="Error"/>
</add>
<add name="myListener"/>
<remove name="Default"/>
</listeners>
</source>
</sources>
<switches>
<add name="sourceSwitch" value="Error"/>
</switches>
</system.diagnostics>
</configuration>
。通常,您每个侦听器每个应用程序都应仅使用一次命令。
我想象听众是一种记录器 - 您可以让侦听器将日志发送到文件,另一个用于控制台,另一个用于seq。您要做的是,在每个按钮单击时,您添加了文件侦听器的新实例,因此从现在开始,您添加的每个侦听器都将写入新文件等等。 我猜想是因为您多次将其注册,请跟踪另一个文件(带有GUID)来防止并发文件写入。