以下是配置文件。
<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信息......
但是没有显示毫秒可用于穿孔仪器的毫秒,有谁知道如何显示?感谢。
答案 0 :(得分:18)
您可以为时间戳模板标记指定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
类。
答案 1 :(得分:4)
不幸的是,企业库日志记录使用.net DateTime,因此尽管@Tuzo描述的记录毫秒是可能的,但它最多也是无意义的,最坏的是误导性的。
Eric Lippert写了一个有趣的解释:https://stackoverflow.com/a/2143784/230428
任何值的精度最好是加减50ms(尽管这种情况因机器而异 - 这是不依赖于此的另一个原因)。这是因为日期时间是为了回答“什么日期和时间?”这个问题而设计的。而不是“这需要多长时间?”的问题。对于后者,请使用秒表类。
显然,让日志框架远离并记录你的时间的便利听起来很诱人,但你不应该依赖它来做任何低于二次精度的时间。
当我的MVC OnActionExecuting和OnActionExecuted日志在同一时间返回到微秒时,我首先遇到了这个问题。非常令人印象深刻,同样错误。