[ https://issues.apache.org/jira/browse/LOG4J2-232?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13661261#comment-13661261 ]
Remko Popma commented on LOG4J2-232: ------------------------------------ Did you get a chance to run the stand-alone test program? > Custom Converter plugin won't load. > ----------------------------------- > > Key: LOG4J2-232 > URL: https://issues.apache.org/jira/browse/LOG4J2-232 > Project: Log4j 2 > Issue Type: Bug > Affects Versions: 2.0-beta5 > Reporter: Remko Popma > Assignee: Remko Popma > > From: John Smith <java.dev....@gmail.com> > To: log4j-u...@logging.apache.org > Sent: Thursday, May 2, 2013 5:41 AM > Subject: Custom Converter plugin won't load. > Using log4j2-beta5 > I'm writing a custom PatternConverter to mask logs for such things as > Credit Card and Card Security Code and some additional elements. > My converter looks like so.... > package com.xxx.log4j.converters; > import java.util.List; > import java.util.regex.Pattern; > import org.apache.logging.log4j.core.LogEvent; > import org.apache.logging.log4j.core.config.Configuration; > import org.apache.logging.log4j.core.config.plugins.Plugin; > import org.apache.logging.log4j.core.layout.PatternLayout; > import org.apache.logging.log4j.core.pattern.ConverterKeys; > import org.apache.logging.log4j.core.pattern.LogEventPatternConverter; > import org.apache.logging.log4j.core.pattern.PatternFormatter; > import org.apache.logging.log4j.core.pattern.PatternParser; > @Plugin(name = "MaskConverter", type = "Converter") > @ConverterKeys({"ma", "mask" }) > public class MaskConverter extends LogEventPatternConverter { > private final List<PatternFormatter> formatters; > private final Pattern ccPattern; > private final Pattern cvnPattern; > public static final String CARD_PATTERN = > "(AcctNumber|AcctNumber2)([=\\^])([0-9]+)([0-9]{4})"; > public static final String CARD_MASK = "$1$2********$4"; > public static final String CVN_PATTERN = "(Cvn)([=\\^])([0-9]{3,4})"; > public static final String CVN_MASK = "$1$2****"; > private MaskConverter(final List<PatternFormatter> formatters, final > Pattern ccPattern, final Pattern cvnPattern) { > super("ma", "mask"); > System.out.println("Here..."); > this.formatters = formatters; > this.ccPattern = ccPattern; > this.cvnPattern = cvnPattern; > } > public static MaskConverter newInstance(final Configuration config, > final String[] options) { > System.out.println("There..."); > if (options.length != 1) { > LOGGER.error("Incorrect number of options on mask. Expected 1 > received " + options.length); > return null; > } > final Pattern ccPattern = Pattern.compile(CARD_PATTERN, > Pattern.CASE_INSENSITIVE); > final Pattern cvnPattern = Pattern.compile(CVN_PATTERN, > Pattern.CASE_INSENSITIVE); > final PatternParser parser = > PatternLayout.createPatternParser(config); > final List<PatternFormatter> formatters = parser.parse(options[0]); > return new MaskConverter(formatters, ccPattern, cvnPattern); > } > @Override > public void format(final LogEvent event, final StringBuilder toAppendTo) { > System.out.println("Where..." + event.getMessage()); > final StringBuilder buf = new StringBuilder(); > for (final PatternFormatter formatter : formatters) { > formatter.format(event, buf); > } > toAppendTo.append(ccPattern.matcher(cvnPattern.matcher(buf.toString()).replaceAll(CVN_MASK)).replaceAll(CARD_MASK)); > } > } > And my log4j2.xml looks like... > <?xml version="1.0" encoding="UTF-8"?> > <configuration status="TRACE" monitorInterval="5" > packages="com.xxx.log4j.converters,"> > <appenders> > <FastFile name="FILE" fileName="C:/Temp/XXXJava/logs/vertx.log" > immediateFlush="false" append="false"> > <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - > %mask{%msg}%n"/> > </FastFile> > <Console name="Console" target="SYSTEM_OUT"> > <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - > %mask{%msg}%n"/> > </Console> > </appenders> > <loggers> > <root level="DEBUG"> > <appender-ref ref="Console"/> > <appender-ref ref="FILE"/> > </root> > </loggers> > </configuration> > But it doesn't seem to load the plugin I don't see any of my print > statements in the console and all I see is the word ask appended to my log > messages. > Have I missed something -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org