[intlink id=”555″ /]の続き。
App.configファイルにlog4netで出力ファイルパスを相対パスで指定すると実行ファイル(.exe)からの相対パス指定になってしまう。解決策としてXmlConfiguratorの環境変数を読み込む機能を使うことによって柔軟にパスを設定することができたのでメモ。
たとえば、C#のコードで環境変数を設定するコードとその環境変数を参照するApp.configを用意すれば、DLLファイルからの相対パスの指定が可能になる。
string tDLLFileName = Assembly.GetExecutingAssembly().Location;
string tLogBaseDirectory = Path.GetDirectoryName(tDLLFileName);
Environment.SetEnvironmentVariable("LogBaseDirectory", tLogBaseDirectory);
XmlConfigurator.Configure();
この方法を使えば、ファイル名に限らず設定項目をC#のプログラムからカスタマイズすることができる。あまりやりすぎると、何のための設定ファイルなのかわからなくなってくるので、バランス重要。
おしまい。