Estoy tratando de escribir un código C#, que recupera en tiempo de ejecución el patrón de nombre de un archivo de registro log4net a través de la API log4net.¿Cómo obtener un patrón de nombre de archivo de registro log4net programáticamente?
Es decir, si en log4net.config la siguiente appender se define:
<appender name="MyAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="%date{yyyy}\%date{MM}\%date{dd}\%property{Id}.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="16" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message%newline" />
</layout>
</appender>
me gustaría obtener % date {} aaaa fecha \%} {MM fecha \%} {dd \% propiedad {Id} .log en una variable de cadena en el código (sin analizar log4net.config como XML simple).
¿Alguien tiene una idea para sacar este truco?
Gracias de antemano.
Creo que eso no funciona. La propiedad del archivo ya está evaluada en ese punto. Por lo tanto, ya no contendrá '% date {aaaa} \% date {MM} \% date {dd} ...' but '2012 \ 09 \ ...'. – Wolfgang
@ Michael Wolfgang tiene toda la razón: cuando se recupera la propiedad _fichero_ ya fue evaluada, y no pude obtener el valor patrón original. – Lev
hrm. tienes razón, siempre he usado esto para obtener el camino (que normalmente no usamos) y nunca lo noté. Esta información debe estar disponible en alguna parte porque el patrón se vuelve a calcular en algún momento, déjame profundizar. –