LoggerFields.createLoggerFields(new KeyValuePair[] { new KeyValuePair("source", "%C.%M")}, "SD-ID", "32473", false), LoggerFields.createLoggerFields(new KeyValuePair[] { new KeyValuePair("baz", "%C.%M"), new KeyValuePair("baz", "%C.%M") }, "BAZ", "32473", false), LoggerFields.createLoggerFields(new KeyValuePair[] { new KeyValuePair("bar", "%C.%M")}, null, null, false) };
private Map<String, FieldFormatter> createFieldFormatters(final LoggerFields[] loggerFields, final Configuration config) { final Map<String, FieldFormatter> sdIdMap = new HashMap<>(loggerFields == null ? 0 : loggerFields.length); if (loggerFields != null) { for (final LoggerFields loggerField : loggerFields) { final StructuredDataId key = loggerField.getSdId() == null ? mdcSdId : loggerField.getSdId(); final Map<String, List<PatternFormatter>> sdParams = new HashMap<>(); final Map<String, String> fields = loggerField.getMap(); if (!fields.isEmpty()) { final PatternParser fieldParser = createPatternParser(config, null); for (final Map.Entry<String, String> entry : fields.entrySet()) { final List<PatternFormatter> formatters = fieldParser.parse(entry.getValue()); sdParams.put(entry.getKey(), formatters); } final FieldFormatter fieldFormatter = new FieldFormatter(sdParams, loggerField.getDiscardIfAllFieldsAreEmpty()); sdIdMap.put(key.toString(), fieldFormatter); } } } return sdIdMap.size() > 0 ? sdIdMap : null; }
/** * Create a LoggerFields from KeyValuePairs. * * @param keyValuePairs * An array of KeyValuePairs. * @param sdId * The SD-ID in an SD-ELEMENT * @param enterpriseId * The IANA assigned enterprise number * @param discardIfAllFieldsAreEmpty * this SD-ELEMENT should be discarded if all fields are empty * @return A LoggerFields instance containing a Map<String, String>. */ @PluginFactory public static LoggerFields createLoggerFields( @PluginElement("LoggerFields") final KeyValuePair[] keyValuePairs, @PluginAttribute("sdId") final String sdId, @PluginAttribute("enterpriseId") final String enterpriseId, @PluginAttribute(value = "discardIfAllFieldsAreEmpty") final boolean discardIfAllFieldsAreEmpty) { final Map<String, String> map = new HashMap<>(); for (final KeyValuePair keyValuePair : keyValuePairs) { map.put(keyValuePair.getKey(), keyValuePair.getValue()); } return new LoggerFields(map, sdId, enterpriseId, discardIfAllFieldsAreEmpty); }
LoggerFields.createLoggerFields(new KeyValuePair[] { new KeyValuePair("dummy", Strings.EMPTY), new KeyValuePair("empty", Strings.EMPTY)}, "SD-ID", "32473", true), LoggerFields.createLoggerFields(new KeyValuePair[] { new KeyValuePair("baz", "%C.%M"), new KeyValuePair("baz", "%C.%M") }, "BAZ", "32473", false), LoggerFields.createLoggerFields(new KeyValuePair[] { new KeyValuePair("bar", "%C.%M")}, null, null, false) };
LoggerFields.createLoggerFields(new KeyValuePair[] { new KeyValuePair("source", "%C.%M")}, null, null, false), LoggerFields.createLoggerFields(new KeyValuePair[] { new KeyValuePair("source2", "%C.%M")}, null, null, false) };