Самый простой способ сделать то, что вы хотите, это установить свойство Timestamp
для LogEntry
.
например:.
LogEntry le = new LogEntry()
{
Message = "Log it",
TimeStamp = DateTime.Now // use local time
};
le.Categories.Add("General");
Logger.Write(le);
Другие варианты сделать то, что вы хотите, это создать пользовательский прослушиватель трассировки или изменить хранимую процедуру WriteLog
для использования любого значения, которое вы пожелаете. Вы можете просто использовать GETDATE()
или сделать некоторую манипуляцию переданным в UTC Timestamp:
DATEADD(HOUR, DATEDIFF(HOUR, GETUTCDATE(), GETDATE()), timestamp)
В качестве точки интереса (поскольку вы обычно не используете этот тип кода), если вы используете метод Write () в FormattedDatabaseTraceListener
напрямую, он использует локальный DateTime. E.g.:
var dbWriter = new FormattedDatabaseTraceListener(
EnterpriseLibraryContainer.Current.GetInstance<Database>(),
"writeLog", "AddCategory", new TextFormatter());
dbWriter.Write("Log this!", "General");
Но, как написал комментатор, я бы рекомендовал придерживаться UTC.