我有一个使用 Common.Logging 进行日志记录的可安装 ASP.Net 应用程序。
编写日志消息时,即:
_log.InfoFormat(CultureInfo.???, "{0}: Writing to the Log", DateTime.UtcNow);
我对应该使用哪种文化感到困惑。我想要的结果是使用服务器的区域设置格式化日志消息。这样,当管理员安装应用程序时,他们就可以控制日志消息的格式。
有四个选项,但似乎没有一个是正确的选择:
- CultureInfo.CurrentCulture:这似乎是 Windows 应用程序的正确选择,但 ASP.Net 正在更改它以匹配浏览网站的用户 - 因此它适合格式化内容以显示给用户,但不适用于写入日志.
- CultureInfo.CurrentUICulture:与 CurrentCulture 类似的问题 - 将匹配当前浏览网站的用户。
- CultureInfo.InstalledUICulture:系统安装的文化 - 似乎与安装的 Windows 副本有关,但用户无法更改。显然这个有点没用
- CultureInfo.InvariantCulture:这不是用户可配置的。我想知道这是否是这里四个选项中最好的一个,因为至少它是一致的,并且不会因浏览网站的人/安装媒体窗口的人而异。
我想知道是否需要在我的 web.config 中为系统文化添加显式配置,以便安装程序可以选择一种文化。我真正想要的答案是在 ASP.Net 更改它以匹配当前用户之前 CultureInfo.CurrentCulture 是什么。
注意:我知道我可以关闭 ASP.Net,更改每个用户的 CurrentCulture,但 UI 依赖于这种行为。