diff --git a/mcdp/src/ch/ntb/usb/logger/LogUtil.java b/mcdp/src/ch/ntb/usb/logger/LogUtil.java index 36d0e57..991c3cd 100644 --- a/mcdp/src/ch/ntb/usb/logger/LogUtil.java +++ b/mcdp/src/ch/ntb/usb/logger/LogUtil.java @@ -1,12 +1,41 @@ package ch.ntb.usb.logger; +import java.util.logging.ConsoleHandler; +import java.util.logging.Handler; +import java.util.logging.Level; + public class LogUtil { - + public static UsbLogger ch_ntb_usb; static { // set all loglevels here - ch_ntb_usb = UsbLogger.getLogger("ch.ntb.usb"); - ch_ntb_usb.setLevel(LogLevel.OFF); + ch_ntb_usb = getLogger("ch.ntb.usb", LogLevel.OFF); + } + + public static void setLevel(UsbLogger logger, Level loglevel) { + Handler[] h = logger.getHandlers(); + for (int i = 0; i < h.length; i++) { + h[i].setLevel(loglevel); + } + logger.setLevel(loglevel); + } + + private static void initLevel(UsbLogger logger, Level loglevel) { + Handler[] h = logger.getHandlers(); + for (int i = 0; i < h.length; i++) { + logger.removeHandler(h[i]); + } + Handler console = new ConsoleHandler(); + console.setLevel(loglevel); + logger.addHandler(console); + logger.setLevel(loglevel); + logger.setUseParentHandlers(false); + } + + private static UsbLogger getLogger(String name, Level loglevel) { + UsbLogger logger = UsbLogger.getLogger(name); + initLevel(logger, loglevel); + return logger; } }