View Javadoc
1   package net.sf.appstatus.core.loggers.impl;
2   
3   import java.util.ArrayList;
4   import java.util.Collections;
5   import java.util.Enumeration;
6   import java.util.List;
7   import java.util.Properties;
8   
9   import net.sf.appstatus.core.loggers.ILoggersManager;
10  import net.sf.appstatus.core.loggers.LoggerConfig;
11  
12  import org.apache.log4j.Level;
13  import org.apache.log4j.LogManager;
14  import org.apache.log4j.Logger;
15  
16  /**
17   * A log manager for log4j.
18   * 
19   * @author Romain Gonord
20   * 
21   */
22  public class Log4jLoggersManager implements ILoggersManager {
23  	@SuppressWarnings("unchecked")
24  	public List<LoggerConfig> getLoggers() {
25  		List<LoggerConfig> loggers = new ArrayList<LoggerConfig>();
26  		loggers.add(new LoggerConfig("ROOT", LogManager.getRootLogger().getEffectiveLevel().toString()));
27  		Enumeration<Logger> currentLoggers = LogManager.getCurrentLoggers();
28  		while (currentLoggers.hasMoreElements()) {
29  			Logger logger = currentLoggers.nextElement();
30  			loggers.add(new LoggerConfig(logger.getName(), logger.getEffectiveLevel().toString()));
31  		}
32  		Collections.sort(loggers);
33  		return loggers;
34  	}
35  
36  	public void update(LoggerConfig logger2Change) {
37  
38  		if ("ROOT".equals(logger2Change.getName())) {
39  			LogManager.getRootLogger().setLevel(Level.toLevel(logger2Change.getLevel()));
40  		} else {
41  			LogManager.getLogger(logger2Change.getName()).setLevel(Level.toLevel(logger2Change.getLevel()));
42  		}
43  	}
44  
45  	public Properties getConfiguration() {
46  		return null;
47  	}
48  
49  	public void setConfiguration(Properties configuration) {
50  
51  	}
52  }