2016-05-12 9 views
1

私はlog4netアペンダーのために次のconversionPatternを持っています。私はカスタムプロパティをコード(DateTimeオブジェクト)に設定しています。このプロパティをlog4netログに出力できます。log4netでカスタムプロパティをフォーマットする

<appender name="FilteredLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="${USERPROFILE}\logs\UserConfiguredFilteredLog.txt" /> 
    <param name="AppendToFile" value="true" /> 
    <param name="ImmediateFlush" value="true" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="100MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <param name="Header" value="[Header]&#xD;&#xA;" /> 
    <param name="Footer" value="[Footer]&#xD;&#xA;" /> 
    <!-- I don't think I can apply custom formating on the CustomDate property--> 
    <param name="ConversionPattern" value="%d [%t] %property{LoggerCategory} [UserCustomTime:%property{CustomDate}] %-5p %c %m%n" /> 
    </layout> 
</appender> 

質問:私が設定したCustomDateプロパティをどのようにフォーマットできますか?私は%dと-dを追加しようとしましたが、そのようなものはいろいろ組み合わせましたが、それを理解することはできません。それが可能かどうかはわかりません。

+0

多分[this](http://stackoverflow.com/questions/15806793/log4net-custom-property-logging)それは解決策を説明しています –

+0

最も簡単な方法はlog4netに送る前に値をフォーマットすることですが、つまり、プロパティ値 – stuartd

答えて

0

DateTime型のlog4net.ThreadLogicalContextにカスタムプロパティを設定しているようです。なぜDateTime型の代わりに文字列形式で入力してください。これにより、構成にレイアウトを追加しようとすると、出力がずっと簡単になります。

+0

をyesに設定したとき、私はそれを次のように割り当てています:loggingEvent.Properties ["MyPropName"] = myDate(私には正確なコードはありません)私はそれを文字列として保存して自分の好みに合わせてフォーマットすることができたことに気がつきましたが、できるだけapp.configレベルでこれを設定するようユーザーに伝えたいと考えていました。 –

+0

それはすでに非常に製品固有のようです。それはあなたが問題を修正するためですか?http://stackoverflow.com/questions/37006757/using-a-logger-date-other-than-the-local-system-time – Peter

+0

はい、それはその質問です。おそらく私は自分の所見をカスタムプロパティについて掲載していたはずですが、まだ完全な答えはありませんでした。 –

関連する問題