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。
你想在数据库中保存当地时间吗?别! –