2013-02-26 4 views
5

私はロギングにlog4netを使用している内部アプリを持っています。ログを%LOCALAPPDATA%\Vendor\App\application.logに生成したいと思います。残念ながら、log4netはログファイルを%APPDATA%に作成しています。これは大きな問題ではありません。私たちは実際にここでプロファイルされたローミングを使用しないので、私はそれを避けることができれば私のコードにはほとんど特異性を残したくありません。Windows XPと7で%LOCALAPPDATA%に書き込むようにlog4netを設定するにはどうすればよいですか?

log4netをプログラムで設定せずにpinvokeを使用してXPのパスを取得せずに、指定した場所にファイルを書き込む方法について考えていますか?それは任意のヘルプだ場合

は、ここに私の設定ファイルのアペンダセクションです:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="${LOCALAPPDATA}\Vendor\App\application.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="100KB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger%newline%message%newline" /> 
    </layout> 
</appender> 

答えて

6

を、これは動作しない場合、それはあなたの環境変数が間違っている暗示します。

Log4netには、appdataまたはlocalappdataのいずれかを処理するための特別な機能はありません。 System.Environment.GetEnvironmentVariables()を呼び出してハッシュテーブルを返し、返される値に基づいて置換を実行するだけです。

関連する問題