アペンダーで圧延時間と圧延サイズの両方を組み合わせたいのですが、log4cxxには複合圧延がないようですが、正しいですか?
1 に答える
1
いいえ、ありません。実際、log4jにもそのような複合ポリシーは実装されていないため、log4cxxに転送されませんでした。
私はかつて、そのような混合ポリシーのローリングファイルアペンダーを作成するタスクを持っていました(ただし、log4jで)。私は、特に、オーバーライドすることによってこれを行いましたFileAppender
。メソッド
// log4j
void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize);
// log4cxx
void setFile(const LogString& filename, bool append1, bool bufferedIO1, size_t bufferSize1, Pool& p);
プロセスの再起動後も適切なログチャンクへのロギングを続行し、
// log4j
void subAppend(LoggingEvent event);
// log4cxx
virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
すべてのログエントリの後に、ロールオーバーの条件が真であるかどうかをテストします。
log4j / cxxに独自のアペンダーを実装することの本当に強力な機能は、そのプロパティをで定義しlog4j.properties
、ライブラリで設定できることです。Javaでは、リフレクションのおかげで無料で入手できます。log4cxxでは、あなたはあなたを書く必要があるだけです
void setOption(const LogString& option, const LogString& value);
メソッド。オプション文字列を反復処理し、必要な初期化アクションを実行します。
それが助けになり、適切な時期に来ることを願っています。
于 2011-09-09T20:11:48.200 に答える