ロギングなど、さまざまなことを制御するために多くの「コンパイルシンボル」を使用しています。
[Conditional("LOG_AAA")]
public static void Warning(string s)
{
swLog.WriteLine(DateTime.Now.TimeOfDay + " [Warning] " + s);
}
いつでも「LOG_AAA」をオン/オフして、特定のログを書き込む必要があるかどうかを制御できます。プログラムのさまざまな部分から多くの種類のログがあり、それらのいくつかを頻繁に turn_on / turn_off する必要があります。
問題は、設定を変更するたびに「csproj」ファイルが更新され、それをリポジトリに保存するときにコミットする必要があることです。
問題は、この問題をどのように解決するかです。
- 「csproj」ファイルをリポジトリに保存しませんか? しかし、このファイルには多くの重要なものが含まれているため、残念ながらリポジトリに保存する必要があります
- 「csproj」ファイルをリポジトリに保存しますか? それでは、頻繁に変更する「コンパイルシンボル」を「抽出」する方法は?
おそらく「log4net」は私の問題を解決することができますが、私は非常に単純なロギングメカニズムが好きなので、使用したくありません。使用しないものがたくさんある別のライブラリを追加したくないので、単に「log4net」に切り替えることを提案しないでください。これでおそらく問題が解決し、それに切り替える必要があることに同意しますが、この質問では「log4net」(および他のライブラリ)はオプションではないと仮定しましょう。さらに、この質問はログ記録だけでなく、何か (ログ記録を含む) を制御するために使用できる compilation_symbols に関するものです。