
Ok, I looked into logback code and saw it is not possible to retrieve the parent logger from a logger with the current code. Was there a reason why this is not made possible? Would it be possible to add the necessary public Logger getParent() { return parent; } method in the next release? Is there another way in logback to get the effective Appenders from a given logger other then retrieving the appenders from all loggers and then do name-string comparisons to find out who is whose parent? best regards, christian! On Thu, Nov 24, 2011 at 2:37 PM, Christian Migowski <chrismfwrd@gmail.com> wrote:
Hi,
how can I get the parent logger of a given logger in logback? What I want is to retrieve a list of all effective appenders on a given logger, I suppose therefore I need to call iteratorForAppenders() on the logger itself as well as on all parents, right? log4j had logger.getParent() but I cannot find something similar in logback.
thanks in advance, best regards, christian!
P.S. what I really want is to port this from log4j to logback, it gets a list of all logfiles attached to a given logger:
org.apache.log4j.Logger testlogger = org.apache.log4j.Logger.getLogger(log.getName()); ArrayList<String> recvdMsg = new ArrayList<String>(); while (testlogger != null && testlogger instanceof org.apache.log4j.Logger) { Enumeration<Appender> loggers = testlogger.getAllAppenders(); while (loggers.hasMoreElements()) { Appender x = loggers.nextElement(); if (x instanceof FileAppender) { String filename = ((FileAppender) x).getFile(); if (filename != null) { File logfile = new File(filename); try { recvdMsg.add(logfile.getCanonicalPath()); } catch (IOException e) { //so we don't add the path, thats enough handling } } } } testlogger = (org.apache.log4j.Logger) testlogger.getParent(); }