1

アペンダーで圧延時間と圧延サイズの両方を組み合わせたいのですが、log4cxxには複合圧延がないようですが、正しいですか?

4

1 に答える 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 に答える