これは、Chainsawがlog4j APIのみを使用して、patternlayoutsを有用なものに変換するために使用するコードです。チェーンソーの最新の開発者スナップショットの場合、log4jxmlまたはプロパティファイルfileappenderエントリから直接チェーンソー構成を構築するために使用されます。
PatternParser#parseによって入力されたコンバーターとフィールドを使用して、必要な処理を実行します。PatternParserクラスは、log4j'extras'コンパニオンに含まれています。
http://svn.apache.org/repos/asf/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.javaから
public static String getLogFormatFromPatternLayout(String patternLayout) {
String input = OptionConverter.convertSpecialChars(patternLayout);
List converters = new ArrayList();
List fields = new ArrayList();
Map converterRegistry = null;
PatternParser.parse(input, converters, fields, converterRegistry, PatternParser.getPatternLayoutRules());
return getFormatFromConverters(converters);
}
特定のPatternLayoutに準拠するログファイルを読み取り、log4j LoggingEventsを生成するものが実際に必要な場合は、LogFilePatternReceiverを参照してください。チェーンソーはgetLogFormatFromPatternLayoutメソッドを使用して、patternLayoutをレシーバーが必要とするLogFormatに変換します。
ちなみに、Chainsawの開発者スナップショットには、多くの追加の新機能が含まれています。試してみたい場合は、ここから入手できます。
http://people.apache.org/~sdeboy