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;
    }
}

Reply via email to