6

log4cxxのカスタムアペンダーを作成し、プロパティファイル(組み込みのアペンダーなど)を介して構成することは可能ですか?可能であれば、log4cxxを再構築せずに(たとえば、既存のアペンダーを派生/拡張することによって)これを行うことをお勧めします。

例を挙げていただけますか?

4

3 に答える 3

7

AppenderSkeleton または WriterAppender から継承し、log4cxx を再構築することなく、同じ基本動作を取得できます。

http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/test/cpp/vectorappender.h?view=markup http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src /test/cpp/vectorappender.cpp?view=マークアップ

于 2009-05-17T14:22:35.153 に答える
4

brlcad の提案は正しいです。私の会社では、独自のカスタム アペンダーにこの方法を使用しています。

実際、構成ファイルからこれらを既に構成できます。クラス定義の DECLARE_LOG4CXX_OBJECT(CustomAppenderClassName) などのマクロは、log4cxx 環境をセットアップします。「CustomAppenderClassName」でアペンダータイプを参照できます。カスタム アペンダーの標準レイアウトを使用して、標準およびカスタム アペンダーを示す構成ファイル (古いスタイル):

# Set "realtime" logger level to DEBUG and create two appenders - one to be
# a standard rolling file appender, the other custom.
log4j.logger.realtime=ERROR, StandardAppender, CustomAppender

# StandardAppenderis set to be a RollingFileAppender
log4j.appender.StandardAppender=org.apache.log4j.RollingFileAppender
log4j.appender.StandardAppender.File=example.log

log4j.appender.StandardAppender.MaxFileSize=100KB
# Keep one backup file
log4j.appender.StandardAppender.MaxBackupIndex=1

# StandardAppender uses PatternLayout.
log4j.appender.StandardAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.StandardAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

# CustomAppender uses PatternLayout too
log4j.appender.CustomAppender=CustomAppenderClassName
log4j.appender.CustomAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.CustomAppender.layout.ConversionPattern=%m
于 2011-05-04T15:58:21.993 に答える