【发布时间】:2016-02-05 21:51:35
【问题描述】:
我在一个被许多子类引用的根类中按以下方式创建了一个通用记录器。
public static final Logger LOGGER = Logger.getLogger(RootClass.class.getName());
然后我以以下方式在子类中访问该记录器。
private static final Logger LOGGER = RootClass.LOGGER;
我有一个接收用户输入的主类,它调用 RootClass 中的一个方法来配置记录器。
logStatus = messageBus.configureLogPath(logPath,logLevel);
下面是上述方法的实现。
public Boolean configureLogPath(String logPath,String level) {
Boolean result=false;
switch(level) {
case "info" :
LOGGER.setLevel(Level.INFO);
break;
case "severe":
LOGGER.setLevel(Level.SEVERE);
break;
case "debug":
LOGGER.setLevel(Level.CONFIG);
break;
case "off" :
LOGGER.setLevel(Level.OFF);
break;
default :
LOGGER.setLevel(Level.SEVERE);
}
try {
simpleFormatter = new SimpleFormatter();
logFileHandler = new FileHandler(logPath);
logFileHandler.setFormatter(simpleFormatter);
LOGGER.addHandler(logFileHandler);
result =true;
} catch (SecurityException e1) {
result= false;
LOGGER.log(Level.SEVERE, "Security exception when reading log file" + e1);
} catch (IOException e1) {
result = false;
LOGGER.log(Level.SEVERE, "IO Exception when reading log file" + e1);
}
return result;
}
我是否可以禁用某些选定子类的日志记录?我有一个要求,用户应该能够设置应为其创建日志的某些子类。但由于我在所有子类中使用通用记录器,我不确定如何实现这一点。请指教。
【问题讨论】:
标签: java eclipse logging configure java.util.logging