首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Enterprise Library 4.1日志时间戳如何显示毫秒

Enterprise Library 4.1日志时间戳如何显示毫秒
EN

Stack Overflow用户
提问于 2011-06-02 01:03:41
回答 2查看 9.2K关注 0票数 10

以下是配置文件中的内容。

代码语言:javascript
运行
复制
 <formatters>
      <add template="{timestamp} {severity} {category} {message}" type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        name="SingleLineFormatter" />
 </formatters>

其中显示了

31/05/2011 11:43:24信息...

但是没有毫秒的显示,这将是有用的性能仪表,谁知道如何显示?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-02 04:19:01

您可以为时间戳模板令牌指定StandardCustom DateTime格式的字符串:

代码语言:javascript
运行
复制
<formatters>
      <add 
        template="{timestamp(MM/dd/yyyy HH:mm:ss.fffffff)} {severity} {category} {message}" 
        type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        name="SingleLineFormatter" />
 </formatters>

这将输出类似以下内容:

06/01/2011 20:12:43.3405776一般信息这是消息

默认情况下,DateTime将采用UTC时间。如果您希望使用本地时间,则在格式字符串前添加" local :“前缀。例如{timestamp(local:MM/dd/yyyy HH:mm:ss.fffffff)}

此外,如果您希望记录方法入口和出口的性能跟踪,则可能需要查看Tracer类。

票数 19
EN

Stack Overflow用户

发布于 2012-03-19 18:50:44

不幸的是,企业库日志记录使用的是.net DateTime,所以尽管像@Tuzo所描述的那样,日志记录毫秒是可能的,但在最好的情况下,它是没有意义的,在最坏的情况下,它具有误导性。

Eric Lippert写了一个有趣的解释:https://stackoverflow.com/a/2143784/230428

任何值的精度最多只能是正负50ms (尽管这在不同的机器上是不同的-这是不依赖于此的另一个原因)。这是因为日期时间是用来回答“现在是什么日期和时间?”而不是问“这花了多长时间?”对于后者,请使用秒表类。

显然,拥有一个记录框架来持续记录时间的便利听起来很诱人,但是您不应该依赖它来获得秒精度的时间。

当我的MVC、OnActionExecuting和OnActionExecuted日志同时返回到微秒时,我第一次遇到这个问题。令人印象深刻,但同样也是错误的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6204978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档