package org.safehaus.penrose.log;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
import org.safehaus.penrose.log.log4j.*;
import java.util.*;
import java.io.File;
/**
* @author Endi S. Dewata
*/
public class LogManager {
Logger log = Logger.getLogger(LogManager.class);
File homeDir;
File confDir;
File log4jXml;
Log4jConfig log4jConfig;
public LogManager(File homeDir) {
this.homeDir = homeDir;
this.confDir = new File(homeDir, "conf");
this.log4jXml = new File(confDir, "log4j.xml");
}
public void load() throws Exception {
Log4jConfigReader reader = new Log4jConfigReader();
log4jConfig = reader.read(log4jXml);
}
public void store() throws Exception {
Log4jConfigWriter writer = new Log4jConfigWriter();
writer.write(log4jXml, log4jConfig);
DOMConfigurator.configure(log4jXml.getAbsolutePath());
}
public Collection<AppenderConfig> getAppenderConfigs() {
return log4jConfig.getAppenderConfigs();
}
public Collection<String> getAppenderNames() {
return log4jConfig.getAppenderConfigNames();
}
public AppenderConfig getAppenderConfig(String appenderName) {
return log4jConfig.getAppenderConfig(appenderName);
}
public void addAppender(AppenderConfig appenderConfig) {
log4jConfig.addAppenderConfig(appenderConfig);
}
public void updateAppender(String appenderName, AppenderConfig appenderConfig) throws Exception {
log4jConfig.updateAppenderConfig(appenderName, appenderConfig);
}
public void removeAppender(String appenderName) {
log4jConfig.removeAppenderConfig(appenderName);
}
public Collection<LoggerConfig> getLoggerConfigs() {
return log4jConfig.getLoggerConfigs();
}
public Collection<String> getLoggerNames() {
return log4jConfig.getLoggerConfigNames();
}
public LoggerConfig getLoggerConfig(String loggerName) {
return log4jConfig.getLoggerConfig(loggerName);
}
public void addLogger(LoggerConfig loggerConfig) {
log4jConfig.addLoggerConfig(loggerConfig);
}
public void updateLogger(String loggerName, LoggerConfig loggerConfig) throws Exception {
log4jConfig.updateLoggerConfig(loggerName, loggerConfig);
}
public void removeLogger(String loggerName) {
log4jConfig.removeLoggerConfig(loggerName);
}
public RootLoggerConfig getRootLoggerConfig() throws Exception {
return log4jConfig.getRootLoggerConfig();
}
public void updateRootLogger(RootLoggerConfig rootLoggerConfig) throws Exception {
log4jConfig.setRootLoggerConfig(rootLoggerConfig);
}
}