I propose that MDC or NDC be used instead. I prefer MDC. I've written some server-side multi-threaded code where each Thread would run a job and I wanted the job name in the logs.
http://www.slf4j.org/api/org/slf4j/MDC.html At some early point when Solr receives a request, you simply store a name-value pair which would be "core" and the name of the core for us. In a finally block, remove it. In a log4j config file, in the ConversionPattern, put this: %X{core} and this will expand to the core name. Some groovy snippet I wrote: final MDC_KEY = "OraSeqId" MDC.put(MDC_KEY, seq.id as String)//must be removed; see finally //in-finally MDC.remove(MDC_KEY) ~ David Smiley On 12/17/08 2:17 PM, "Erik Hatcher" <e...@ehatchersolutions.com> wrote: On Dec 17, 2008, at 12:24 PM, Ryan McKinley wrote: > I'm not sure I understand... > > are you suggesting that rather then configuring our logger like this: > static Logger log = LoggerFactory.getLogger(SolrCore.class); > > We get the Logger everytime we use it with something like: > Logger log = LoggerFactory.getLogger(classname+":"+core.getName() ); > > That seems like a lot of overhead for marginal gain... I'm not up on the logging tips and tricks best practices these days, but yeah, I was suggesting something like that. There's no rule that says logging keys be FQCNs.... that's a decent convention for most cases with a package structure that is well organized and filterable. In this case having the core name in there as a prefix makes a lot of sense to me. We could provide a LoggerUtils.getLogger(core, clazz) or something like to keep it DRY and consistent. Erik