记录应用程序块:数据库跟踪侦听器时间戳
我正在使用 Microsoft Enterprise Library Logging Application Block 记录异常。 我正在使用数据库跟踪侦听器。
日志条目的时间戳默认采用 UTC 时间。
我知道通过设置日志格式化程序,我可以在“日志”表的“FormattedMessage”列中获得本地时间的时间戳: 时间戳:{timestamp(local)}
我如何对“时间戳”列执行相同的操作?
谢谢。
I'm logging exception using Microsoft Enterprise Library Logging Application Block.
I'm using the database trace listener.
Timestamp of the log entry is in UTC time by default.
I know I can have the timestamp of local time in the 'FormattedMessage' column of the 'Log' table by setting the log formatter like this :
Timestamp: {timestamp(local)}
How can I do the same thing with the 'Timestamp' column ?
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
完成您想要的操作的最简单方法是设置
LogEntry
的Timestamp
属性。例如:
执行您想要的操作的其他选项是创建自定义跟踪侦听器或修改
WriteLog
存储过程以使用您希望的任何值。您可以简单地使用GETDATE()
或者您可以对传入的 UTC 时间戳进行一些操作:作为一个兴趣点(因为您通常不会使用这种类型的代码),如果您使用
FormattedDatabaseTraceListener
的 Write() 方法直接使用本地 DateTime。例如:但正如评论者所写,我建议坚持使用 UTC。
The easiest way to do what you want is to set the
Timestamp
property of theLogEntry
.E.g.:
Other options to do what you want would be to create a Custom Trace Listener or to modify the
WriteLog
stored procedure to use any value you wish. You could simply useGETDATE()
or you could do some manipulation of the passed in UTC Timestamp:As a point of interest (since you wouldn't normally use this type of code), if you use the Write() method of the
FormattedDatabaseTraceListener
directly it uses the local DateTime. E.g.:But as a commenter wrote, I would recommend sticking with UTC.