[ https://issues.apache.org/jira/browse/LOG4J2-746?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Remko Popma resolved LOG4J2-746. -------------------------------- Resolution: Duplicate Fix Version/s: 2.0.1 Resolving this as a duplicate of LOG4J2-741. LOG4J2-741 is now fixed in trunk. It would be great if you could verify that the problem no longer occurs with trunk. > Custom Appender > --------------- > > Key: LOG4J2-746 > URL: https://issues.apache.org/jira/browse/LOG4J2-746 > Project: Log4j 2 > Issue Type: Bug > Components: Appenders > Affects Versions: 2.0 > Environment: Windows 7 (x64), Java 7, Tomcat 7 > Reporter: Radek Miazio > Labels: appender, configuration > Fix For: 2.0.1 > > > I want to configure > [Sentry|https://github.com/getsentry/raven-java/tree/master/raven-log4j2] to > to be working with log4j2. > To do that I need to add sentry appender to log4j2.xml file. > Actually it does not differ from configuring custom appender. > Manual page suggests that I need to add package with the appender to > "packages" attribute of Configuration element: > http://logging.apache.org/log4j/2.x/manual/configuration.html#ConfigurationSyntax > My log4j2.xml file looks like this: > {code} > <Configuration status="trace" packages="net.kencochrane.raven.log4j2"> > <Appenders> > <Console name="Console" target="SYSTEM_OUT"> > <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level > %logger{36} - %msg%n" /> > </Console> > <Raven name="Sentry"> > <dsn> > https://publicKey:secretKey@host:port/1?options > </dsn> > </Raven> > </Appenders> > <Loggers> > <Root level="error"> > <AppenderRef ref="Console" /> > <AppenderRef ref="Sentry" /> > </Root> > </Loggers> > </Configuration> > {code} > Package 'net.kencochrane.raven.log4j2' contains a class that extends > 'org.apache.logging.log4j.core.appender.AbstractAppender'. > However, looks like it is completely ignored. > After some digging, I found out, that PluginManager uses already defined list > of existing plugins, which is available within binary file > (/log4j-core-2.0.jar!/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat) > and "packages" attribute actually doesnt do anything, becuase the only thing > that XmlConfiguration does with its value is: > {code} > PluginManager.addPackage(p); > {code} > but the method is deprecated and empty: > {code} > /** > * Adds a package name to be scanned for plugins. Must be invoked prior > to plugins being collected. > * @param p The package name. > */ > @Deprecated // no more need for this method due to PluginProcessor > public static void addPackage(final String p) { > } > {code} > As you can see, Javadoc points to PluginProcessor, which actually should > create proper binary file based on Plugin annotation. However putting a > breakpoint in 'process' method showed that it is not invoked during the log4j > initialization. > Similar issue was already reported and resolved > https://issues.apache.org/jira/browse/LOG4J2-95 > but looks like problem came up again, and suggestes workaround dont work > anymore. > What should I do to force PluginProcessor create Log4j2Plugins.dat file again? -- This message was sent by Atlassian JIRA (v6.2#6252) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org