以下是Chainsaw用于将patternlayouts转换为有用的代码的代码,仅使用log4j API.对于Chainsaw的最新开发人员快照,它用于直接从log4j xml或属性文件fileappender条目构建Chainsaw配置.
使用PatternParser#parse填充的转换器和字段来执行您想要的操作. PatternParser类包含在log4j’adts’伴侣中.
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. Chainsaw使用getLogFormatFromPatternLayout方法将patternLayout转换为接收器所需的LogFormat.
顺便说一句,Chainsaw的开发人员快照包含许多其他新功能 – 如果你想尝试一下,你可以在这里得到它: