Common.Loggingを使用してログを記録しているインストール可能なASP.Netアプリケーションがあります。
ログメッセージを書き込む場合、つまり:
_log.InfoFormat(CultureInfo.???, "{0}: Writing to the Log", DateTime.UtcNow);
どの文化を使うべきか混乱しています。私が望む結果は、ログメッセージがサーバーの地域設定を使用してフォーマットされることです。そうすれば、管理者はアプリケーションをインストールするときに、ログメッセージのフォーマット方法を制御できます。
4つのオプションがありますが、正しい選択はないようです。
- CultureInfo.CurrentCulture:これはWindowsアプリにとって正しい選択のようですが、ASP.Netはこれを変更して、サイトを閲覧しているユーザーに一致させます。したがって、コンテンツをフォーマットしてユーザーに表示するのは適切ですが、ログに書き込むのは適切ではありません。 。
- CultureInfo.CurrentUICulture:CurrentCultureと同様の問題-サイトを閲覧している現在のユーザーと一致します。
- CultureInfo.InstalledUICulture:システムにインストールされたカルチャ-インストールされたウィンドウのコピーに関連しているように見えますが、ユーザーが変更することはできません。どうやらこれは少し役に立たない
- CultureInfo.InvariantCulture:これはユーザーが構成することはできません。少なくとも一貫性があり、誰がサイトを閲覧しているのか/メディアウィンドウがインストールされているのかによって変わることはないので、これがここでの4つのオプションの中で最良かどうか疑問に思います。
インストーラーがカルチャを選択できるように、システムカルチャのweb.configに明示的な構成を追加する必要があるかどうか疑問に思っています。私が本当に望んでいる答えは、ASP.Netが現在のユーザーに一致するように変更する前のCultureInfo.CurrentCultureが何であれです。
注:ユーザーごとにCurrentCultureを変更してASP.Netをオフにできることはわかっていますが、UIはこの動作に依存しています。