OpenCores
URL https://opencores.org/ocsvn/usb_fpga_2_04/usb_fpga_2_04/trunk

Subversion Repositories usb_fpga_2_04

[/] [usb_fpga_2_04/] [trunk/] [libusbJava-src/] [ch/] [ntb/] [usb/] [logger/] [LogUtil.java] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ZTEX
/*
2
 * Java libusb wrapper
3
 * Copyright (c) 2005-2006 Andreas Schläpfer <spandi at users.sourceforge.net>
4
 *
5
 * http://libusbjava.sourceforge.net
6
 * This library is covered by the LGPL, read LGPL.txt for details.
7
 */
8
package ch.ntb.usb.logger;
9
 
10
import java.io.InputStream;
11
import java.util.Properties;
12
import java.util.logging.ConsoleHandler;
13
import java.util.logging.Handler;
14
import java.util.logging.Level;
15
import java.util.logging.LogManager;
16
import java.util.logging.Logger;
17
 
18
public class LogUtil {
19
 
20
        // debug this class
21
        private static final boolean debugLogUtil = false;
22
 
23
        private static final String PLUGIN_ID = "ch.ntb.usb";
24
        private static final String PROPERTIES_FILE = ".configure";
25
        private static final String LOGGER_WARNING = "Warning in class "
26
                        + LogUtil.class.getName()
27
                        + ": could not load the logger properties file " + PROPERTIES_FILE;
28
 
29
        private static boolean debugEnabled;
30
 
31
        static {
32
                createLoggersFromProperties();
33
        }
34
 
35
        private static void debugMsg(String method, String message) {
36
                if (debugLogUtil) {
37
                        System.out.println(method + ": " + message);
38
                }
39
        }
40
 
41
        public static void setLevel(Logger logger, Level loglevel) {
42
                Handler[] h = logger.getHandlers();
43
                for (int i = 0; i < h.length; i++) {
44
                        System.out.println("setLevel " + loglevel.toString());
45
                        h[i].setLevel(loglevel);
46
                }
47
                logger.setLevel(loglevel);
48
        }
49
 
50
        public static Logger getLogger(String name) {
51
                debugMsg("getLogger", name);
52
                LogManager manager = LogManager.getLogManager();
53
                // check if logger is already registered
54
                Logger logger = manager.getLogger(name);
55
                if (logger == null) {
56
                        logger = Logger.getLogger(name);
57
                        setLevel(logger, Level.OFF);
58
                        manager.addLogger(logger);
59
                        debugMsg("getLogger", "creating new logger");
60
                }
61
                if (logger.getLevel() == null) {
62
                        debugMsg("getLogger", "level == null -> setLevel to OFF ");
63
                        setLevel(logger, Level.OFF);
64
                }
65
                debugMsg("getLogger", "logLevel " + logger.getLevel().getName());
66
                return logger;
67
        }
68
 
69
        private static void initLevel(Logger logger, Level loglevel) {
70
                Handler[] h = logger.getHandlers();
71
                for (int i = 0; i < h.length; i++) {
72
                        logger.removeHandler(h[i]);
73
                }
74
                Handler console = new ConsoleHandler();
75
                console.setLevel(loglevel);
76
                logger.addHandler(console);
77
                logger.setLevel(loglevel);
78
                logger.setUseParentHandlers(false);
79
        }
80
 
81
        private static void createLoggersFromProperties() {
82
                try {
83
                        debugMsg(LogUtil.class.getName(), "createLoggersFromProperties");
84
                        InputStream is = LogUtil.class.getClassLoader()
85
                                        .getResourceAsStream(PROPERTIES_FILE);
86
                        if (is == null) {
87
                                System.err.println(LOGGER_WARNING);
88
                        } else {
89
                                Properties prop = new Properties();
90
                                prop.load(is);
91
                                debugMsg("createLoggersFromProperties",
92
                                                "properties file loaded: " + PROPERTIES_FILE);
93
                                debugMsg("createLoggersFromProperties", "file content:\n"
94
                                                + prop.toString());
95
                                // get global debug enable flag
96
                                debugEnabled = Boolean.parseBoolean(prop.getProperty(PLUGIN_ID
97
                                                + "/debug"));
98
                                debugMsg("createLoggersFromProperties", "debuging enabled: "
99
                                                + debugEnabled);
100
                                // get and configure loggers
101
                                boolean moreLoggers = true;
102
                                int loggerCount = 0;
103
                                while (moreLoggers) {
104
                                        String loggerProp = prop.getProperty(PLUGIN_ID
105
                                                        + "/debug/logger" + loggerCount);
106
                                        loggerCount++;
107
                                        if (loggerProp != null) {
108
                                                // parse string and get logger name and log level
109
                                                int slashIndex = loggerProp.indexOf('/');
110
                                                String loggerName = loggerProp.substring(0, slashIndex)
111
                                                                .trim();
112
                                                String logLevel = loggerProp.substring(slashIndex + 1,
113
                                                                loggerProp.length());
114
                                                // register logger
115
                                                Level level;
116
                                                if (debugEnabled) {
117
                                                        level = Level.parse(logLevel);
118
                                                } else {
119
                                                        level = Level.OFF;
120
                                                }
121
                                                Logger logger = getLogger(loggerName);
122
                                                initLevel(logger, level);
123
                                                debugMsg("createLoggersFromProperties",
124
                                                                "create logger " + loggerName + " with level "
125
                                                                                + level.toString());
126
                                        } else {
127
                                                moreLoggers = false;
128
                                        }
129
                                }
130
                        }
131
                } catch (Exception e) {
132
                        e.printStackTrace();
133
                }
134
        }
135
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.