Radek Miazio created LOG4J2-746: ----------------------------------- Summary: 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
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