這是可能的一種方式。 無論你把「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