我想寫一個C#代碼,它通過log4net API在運行時檢索日誌文件的名稱模式。如何以編程方式獲取log4net日誌文件的名稱模式?
也就是說,如果log4net.config以下appender的定義:
<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>
我想獲得%日期{YYYY} \%{日期MM} \%{日期} DD \%property {Id} .log代碼中的字符串變量(無需解析log4net.config作爲純XML)。
有沒有人有一個想法來拉這個把戲?
預先感謝您。
我認爲這是行不通的。文件屬性已經在那個時候被評估過了。因此它將不再包含'%date {yyyy} \%date {MM} \%date {dd} ...'但是'2012 \ 09 \ ...'。 – Wolfgang
@Michael Wolfgang是絕對正確的:當檢索到_File_屬性已經被評估,並且我無法獲得原始模式值。 – Lev
hrm。你是對的,我一直使用它來獲得路徑(我們通常不會模式化)並且從未注意到。這些數據必須在某處可用,因爲該模式在某個時刻被重新計算,讓我更深入地挖掘。 –