Próbuję napisać kod C#, który pobiera w czasie wykonywania wzorzec nazwy pliku logu log4net za pośrednictwem interfejsu API log4net.Jak programowo uzyskać wzorzec nazwy pliku log4net?
Oznacza to, że jeśli w log4net.config następujące appender jest zdefiniowana:
<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>
Chciałbym dostać datę% {RRRR} \% date {MM} \% date} {dd \% właściwość {Id} .log w zmiennej łańcuchowej w kodzie (bez analizowania log4net.config jako zwykły XML).
Czy ktoś ma pomysł, aby wyciągnąć tę sztuczkę?
Z góry dziękuję.
myślę, że nie działa. Właściwość pliku jest już oceniona w tym punkcie. Więc nie będzie już zawierać "% date {rrrr} \% date {MM} \% date {dd} ...", ale "2012 \ 09 \ ...". – Wolfgang
@Michael Wolfgang ma absolutną rację: po pobraniu właściwość _File_ została już oceniona i nie mogłem uzyskać oryginalnej wartości wzorca. – Lev
hrm. masz rację, zawsze używałem tego, aby po prostu uzyskać ścieżkę (której zazwyczaj nie deserujemy) i nigdy nie zauważyliśmy. Te dane muszą być dostępne gdzieś, ponieważ wzorzec jest ponownie obliczany w pewnym momencie, pozwól mi sięgnąć głębiej. –