if(!isLogOwner()) return;
/** * This method is used to join other logger branch with the jrds' one and * use same setting if it's not already defined * * @param logname the logger name * @param level the desired default level for this logger */ static public void configureLogger(String logname, Level level) { // Do nothing if jrds is not allowed to setup logs if(!isLogOwner()) return; Logger externallogger = LogManager.getLoggerRepository().exists(logname); // Change level only for new logger if(externallogger == null) { externallogger = Logger.getLogger(logname); externallogger.setLevel(level); } // Replace the appender, not optionally add it if(jrdsAppender != null) { Logger logger = Logger.getLogger(logname); Appender oldApp = logger.getAppender(jrdsAppender.getName()); if(oldApp != null) logger.removeAppender(oldApp); logger.addAppender(jrdsAppender); logger.setAdditivity(false); } // Keep the new logger name rootLoggers.add(logname); }
/** * The method used to prepare a minimal set of logging configuration. This * should be used once. It does nothing if it detect that a appender already * exist for the logger <code>jrds</code>. The default logger is the system * error output and the default level is error. * * @throws IOException */ static public void initLog4J() throws IOException { // Do nothing if jrds is not allowed to setup logs if(!isLogOwner()) return; if(jrdsAppender == null) { jrdsAppender = new ConsoleAppender(new org.apache.log4j.SimpleLayout(), DEFAULTLOGFILE); jrdsAppender.setName(APPENDERNAME); } // Configure all the manager logger // Default level is debug, not a very good idea for(String loggerName: rootLoggers) { configureLogger(loggerName, Level.ERROR); } }