Sto provando a scrivere un codice C#, che recupera in runtime il pattern del nome di un file di registro log4net tramite log4net API.Come ottenere un modello di nome del file di log log4net a livello di programmazione?
Cioè, se in log4net.config il seguente appender è definito:
<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>
Vorrei ottenere data% {} aaaa Data \% {MM} data \% {dd} \% property {Id} .log in una variabile stringa in codice (senza analisi log4net.config come un semplice XML).
Qualcuno ha un'idea per fare questo trucco?
Grazie in anticipo.
penso che non funziona. La proprietà del file è già stata valutata in quel punto. Quindi non conterrà più '% date {yyyy} \% date {MM} \% date {dd} ...' ma '2012 \ 09 \ ...'. – Wolfgang
@Michael Wolfgang ha assolutamente ragione: una volta recuperato, la proprietà _File_ è stata già valutata e non è stato possibile ottenere il valore del pattern originale. – Lev
hrm. hai ragione, l'ho sempre usato per ottenere il percorso (che di solito non modelliamo) e non l'ho mai notato. Questi dati devono essere disponibili da qualche parte perché il modello viene ricalcolato a un certo punto, permettimi di scavare più a fondo. –