But when I try to create my own LoggerRepository it wants me to add the addFireAppenderEvent method. Besides not knowing what it should do, what other methods need to be defined? Is there another way or do I have to implement multiple methods? You would think that there should be an easier and straightforward way.
Thank you, Jay Turner -----Original Message----- From: Scott Deboy [mailto:[email protected]] Sent: Friday, July 15, 2011 7:06 PM To: Log4J Users List Subject: Re: I need to handle log4j:WARN Unrecognized element param DOMConfigurator will handle the recognized elements and will delegate unrecognized elements to your selector, so I think you will be ok. Scott On Fri, Jul 15, 2011 at 4:25 PM, Turner, Jay <[email protected]>wrote: > Thank you. This lets me put my own LoggerRepository in as the default. But > how do I create my LoggerRepository that does the same things as the default > LoggerRepository, but includes the UnrecognizedElementHandler? Does this? > public LoggerRepository() implements UnrecognizedElementHandler { > public parseUnrecognizedElement(...) { ... } > } > Does the implemented class do everything the default does though I haven't > overridden methods? > > Thank you, > Jay Turner > > > -----Original Message----- > From: Scott Deboy [mailto:[email protected]] > Sent: Friday, July 15, 2011 5:19 PM > To: Log4J Users List > Subject: Re: I need to handle log4j:WARN Unrecognized element param > > 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 > <[email protected]>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 > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
