1
我正在使用Microsoft企業庫日誌記錄應用程序塊記錄異常。 我正在使用數據庫跟蹤偵聽器。日誌記錄應用程序塊:數據庫跟蹤偵聽器時間戳
默認情況下,日誌條目的時間戳採用UTC時間。
我知道我可以通過設置日誌格式像這樣有本地時間在「登錄」表「FormattedMessage」列中的時間戳: 時間戳:{時間戳(本地)}
我怎樣才能'時間戳'列做同樣的事情?
謝謝。
我正在使用Microsoft企業庫日誌記錄應用程序塊記錄異常。 我正在使用數據庫跟蹤偵聽器。日誌記錄應用程序塊:數據庫跟蹤偵聽器時間戳
默認情況下,日誌條目的時間戳採用UTC時間。
我知道我可以通過設置日誌格式像這樣有本地時間在「登錄」表「FormattedMessage」列中的時間戳: 時間戳:{時間戳(本地)}
我怎樣才能'時間戳'列做同樣的事情?
謝謝。
最簡單的做法是設置LogEntry
的Timestamp
屬性。
例如爲:
LogEntry le = new LogEntry()
{
Message = "Log it",
TimeStamp = DateTime.Now // use local time
};
le.Categories.Add("General");
Logger.Write(le);
其他選項,做你想做的是創建一個自定義跟蹤監聽或修改WriteLog
存儲過程使用任何你想要的值。你可以簡單地使用GETDATE()
或者你可以做的UTC時間戳的推移,一些操作:
DATEADD(HOUR, DATEDIFF(HOUR, GETUTCDATE(), GETDATE()), timestamp)
由於利息(因爲你通常不會使用這種類型的代碼)的一個點,如果你使用Write( )方法的FormattedDatabaseTraceListener
直接使用本地的DateTime。例如:
var dbWriter = new FormattedDatabaseTraceListener(
EnterpriseLibraryContainer.Current.GetInstance<Database>(),
"writeLog", "AddCategory", new TextFormatter());
dbWriter.Write("Log this!", "General");
但作爲評論者寫道,我會建議堅持使用UTC。
你想在數據庫中保存當地時間嗎?別! –