Here's how Chainsaw does it: 1. Create your own LoggerRepository implementation that implements unrecognizedelementhandler (Chainsaw uses LoggerRepositoryExImpl from the components companion).
LogManager.setRepositorySelector(new RepositorySelector() { public LoggerRepository getLoggerRepository() { return repositoryExImpl; }}, repositorySelectorGuard); Then you can call DOMConfigurator.configure and it'll pass those unrecognized elements to your repository selector impl. Scott On Fri, Jul 15, 2011 at 3:02 PM, Turner, Jay <jay.tur...@sabre-holdings.com>wrote: > I get "log4j:WARN Unrecognized element param" because we have some extra > entries in the log4j 1.2.15 XML configuration file at the root level. > > The code uses > DOMConfigurator configurator = new DOMConfigurator(); > configurator.doConfigure(inputStream, > org.apache.log4j.LogManager.getLoggerRepository()); > > The LoggerRepository returned doesn't implement UnrecognizedElementHandler > (or at least not that I know how to connect to it). > I thought of using > class ExtendedLoggerRepository extends > org.apache.log4j.LoggerRepositoryExImpl { > public boolean parseUnrecognizedElement( > org.w3c.dom.Element element, > java.util.Properties props) > throws java.lang.Exception { > // My code > } > } > configurator.doConfigure( > inputStream, > new > ExtendedLoggerRepository(org.apache.log4j.LogManager.getLoggerRepository())); > > But my IntelliJ says that LoggerRepositoryExImpl, which is a public final > class, is not in that package nor the spi subpackage. > > What is the right way of using the default logger repository but hooking in > so that I can parse extra parameters as in: > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> > <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" > debug="true"> > <param name="somename" value="somevalue"/> > : > > Thank you, > Jay Turner > > > >