[ 
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

Reply via email to