首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于日志记录的最佳IFormatProvider是什么?

用于日志记录的最佳IFormatProvider是什么?
EN

Stack Overflow用户
提问于 2012-10-30 02:36:23
回答 1查看 198关注 0票数 2

我有一个可安装的ASP.Net应用程序,它正在使用Common.Logging进行日志记录。

当写入日志消息时,即:

代码语言:javascript
复制
_log.InfoFormat(CultureInfo.???, "{0}: Writing to the Log", DateTime.UtcNow);

我对我应该使用哪种文化感到困惑。我想要的结果是使用服务器的区域设置对日志消息进行格式化。这样,当管理员安装应用程序时,他们就可以控制日志消息的格式化方式。

有四种选择,但似乎都不是正确的选择:

  • CultureInfo.CurrentCulture:对于windows应用程序来说,这似乎是正确的选择,但ASP.Net正在对其进行修改,以匹配浏览站点的用户--因此,格式化内容应该显示给用户,而不是写入日志。
  • CultureInfo.CurrentUICulture:类似于CurrentCulture的问题-将匹配当前用户浏览该网站。
  • CultureInfo.InstalledUICulture:系统安装区域性-似乎与安装的窗口副本有关,但用户不能更改。显然这个有点无用
  • CultureInfo.InvariantCulture:这不是用户可配置的。不过,我想知道这是否是四种选择中最好的一种,因为至少它是一致的,并且不会因用户浏览站点/媒体窗口而改变。

我想知道是否需要在web.config中为系统区域性添加显式配置,以便安装程序可以选择区域性。我真正想要的答案是,CultureInfo.CurrentCulture在ASP.Net更改它以匹配当前用户之前是什么样子的。

注意:我知道我可以关闭ASP.Net,改变每个用户的CurrentCulture,但是UI依赖于这种行为。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-30 03:41:46

管理员喜欢控制日志。告诉他们去配置他们的服务器区域性,以便日志以一种特定的格式进行,这对我来说似乎不是最好的解决方案。

在web.config中添加一个配置选项是个好主意。这将允许管理员根据需要配置日志格式。

与其询问用户,您可以在使用CultureInfo.CurrentCulture进行安装时进行智能猜测。如果用户希望它是不同的东西,他总是可以改变它。

如果您确实希望从CultureInfo.CurrentCulture而不是配置中获取它,可以在Application_Start事件期间选择它,并将其保存在应用程序上下文中。

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

https://stackoverflow.com/questions/13131913

复制
相关文章

相似问题

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