The curly braces in this case would be when you use %p{foo}{bar} or %pId{foo}{bar}. The String[] would be {"foo", "bar"}. The @ConverterKeys specifies the name(s) of the %converterKey part. So if you specified just %p or %pId in your pattern, you'd get an empty String[].
On 10 September 2017 at 01:44, Asma Zinneera Jabir <azinne...@gmail.com> wrote: > I want to append a custom field to the log record and used the > LogEventPatternConverter for this. Referred the documentation > <https://logging.apache.org/log4j/2.x/manual/extending. > html#PatternConverters> > and > wrote the below code. > Now the options happen to be a zero length array. > The documentation says "String array are the values that are specified > within the curly braces that can follow the converter key". Isn't this the > {"p","pId"} in my code? > > @Plugin(name = "PIdConverter", category = "Converter") > @ConverterKeys({"p","pId"}) > > public class PIdConverter extends LogEventPatternConverter { > public PIdConverter(String[] options) { > super(options[0], options[0]); > } > > public static PIdConverter newInstance(String[] options) { > return new PIdConverter(options); > } > > @Override > public void format(LogEvent event, StringBuilder toAppendTo) { > toAppendTo.append(getpID()); > } > > public String getpID() { > String pId = "123"; > if (pId == null) { > pId = "[]"; > } > return pId; > } > } > -- Matt Sicker <boa...@gmail.com>