以下是配置文件中的内容。
<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信息...
但是没有毫秒的显示,这将是有用的性能仪表,谁知道如何显示?谢谢。
发布于 2011-06-02 04:19:01
您可以为时间戳模板令牌指定Standard或Custom DateTime
格式的字符串:
<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
类。
发布于 2012-03-19 18:50:44
不幸的是,企业库日志记录使用的是.net DateTime,所以尽管像@Tuzo所描述的那样,日志记录毫秒是可能的,但在最好的情况下,它是没有意义的,在最坏的情况下,它具有误导性。
Eric Lippert写了一个有趣的解释:https://stackoverflow.com/a/2143784/230428
任何值的精度最多只能是正负50ms (尽管这在不同的机器上是不同的-这是不依赖于此的另一个原因)。这是因为日期时间是用来回答“现在是什么日期和时间?”而不是问“这花了多长时间?”对于后者,请使用秒表类。
显然,拥有一个记录框架来持续记录时间的便利听起来很诱人,但是您不应该依赖它来获得秒精度的时间。
当我的MVC、OnActionExecuting和OnActionExecuted日志同时返回到微秒时,我第一次遇到这个问题。令人印象深刻,但同样也是错误的。
https://stackoverflow.com/questions/6204978
复制相似问题