2013-02-26 20 views
5

Mam wewnętrzną aplikację, która używa log4net do logowania. Chciałbym wygenerować dzienniki pod numerem %LOCALAPPDATA%\Vendor\App\application.log. Niestety, log4net tworzy zamiast tego plik dziennika pod numerem %APPDATA%. To nie jest duży problem, ponieważ nie używamy tutaj profilowania w roamingu, ale nie lubię zostawiać małych idiosynkraz w moim kodzie, jeśli mogę tego uniknąć.Jak skonfigurować logowanie w systemie log4net do% LOCALAPPDATA% w systemach Windows XP i 7?

Jakieś przemyślenia na temat uzyskania pliku zapisanego w podanej lokalizacji bez konieczności konfigurowania programu log4net i używania pinvoke do uzyskania ścieżki do XP?

Oto odcinek appender mojego pliku konfiguracyjnego jeśli to każda pomoc:

<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> 

Odpowiedz

6

Jeśli to nie działa, to oznacza, Twój zmienna jest nie tak.

Log4net nie ma w sobie nic specjalnego do obsługi aplikacji appdata lub localappdata. Wszystko, co robi, to wywołanie System.Environment.GetEnvironmentVariables() w celu zwrócenia tablicy hashtable i przeprowadzenia podstawienia na podstawie dowolnych wartości, które zwracają.

Powiązane problemy