Quiero que log4net escriba archivos de registro (usando RollingFileAppender) en una subcarpeta de la carpeta de datos de la aplicación común (por ejemplo, C: \ Documents and Settings \ All Users \ Application Data \ Company \ Product \ Logs).
Sin embargo, en Win XP, no hay una variable de entorno que especifique esta carpeta. Tenemos %ALLUSERSPROFILE%
, tenemos %APPDATA%
, pero no hay nada como %ALLUSERSAPPDATA%
.
Programatically, que podría utilizar Environment.SpecialFolder.CommonApplicationData
, pero tengo que ponerlo en la configuración de log4net, algo como esto:¿Cómo especificar la carpeta de datos de aplicación común para log4net?
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="%ALLUSERSAPPDATA%\Company\Product\Logs\error.log" />
</appender>
bien, podríamos definir esto en nuestra configuración, pero tal vez alguien se le ocurre una idea mejor ?
por favor, corrija el título de la pregunta deletreando "specifiy" –
Según el enlace en la respuesta de @codeulike, a partir de 1.2.11, simplemente puede usar una expresión PatternString como ['% envFolderPath {CommonApplicationData}'] (http://stackoverflow.com/questions/1535736/log4net-how-can-i-change-the- file -location-programmatic- c/1535998 # 1535998). – Ashe