OSDN Git Service

removed all files
[xerial/xerial-core.git] / src / main / java / org / xerial / util / log / Logger.java
diff --git a/src/main/java/org/xerial/util/log/Logger.java b/src/main/java/org/xerial/util/log/Logger.java
deleted file mode 100755 (executable)
index bc479b5..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-/*--------------------------------------------------------------------------\r
- *  Copyright 2007 Taro L. Saito\r
- *\r
- *  Licensed under the Apache License, Version 2.0 (the "License");\r
- *  you may not use this file except in compliance with the License.\r
- *  You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *  Unless required by applicable law or agreed to in writing, software\r
- *  distributed under the License is distributed on an "AS IS" BASIS,\r
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *  See the License for the specific language governing permissions and\r
- *  limitations under the License.\r
- *--------------------------------------------------------------------------*/\r
-//--------------------------------------\r
-// XerialJ Project\r
-//\r
-// Logger.java\r
-// Since: Jul 9, 2007\r
-//\r
-// $URL: http://www.xerial.org/svn/project/XerialJ/trunk/xerial-core/src/main/java/org/xerial/util/log/Logger.java $ \r
-// $Author: leo $\r
-//--------------------------------------\r
-package org.xerial.util.log;\r
-\r
-import java.io.BufferedReader;\r
-import java.io.ByteArrayInputStream;\r
-import java.io.FileReader;\r
-import java.io.IOException;\r
-import java.io.Reader;\r
-import java.util.Properties;\r
-import java.util.TreeMap;\r
-\r
-/**\r
- * Logger\r
- * \r
- * @author leo\r
- * \r
- */\r
-public class Logger {\r
-\r
-    private LogWriter writer = null;\r
-    private LogLevel _threshold = LogLevel.UNSPECIFIED;\r
-    private String _loggerFullName = "";\r
-    private String _loggerShortName = "";\r
-    private Logger _parentLogger = null;\r
-    private boolean _emitEscapeSequence = false;\r
-\r
-    private static TreeMap<String, Logger> _loggerHolder = new TreeMap<String, Logger>();\r
-    private static Logger _rootLogger = new Logger();\r
-\r
-    static {\r
-        _rootLogger.setLogLevel(LogLevel.INFO);\r
-        _rootLogger.setLogWriter(new SimpleLogWriter());\r
-\r
-        _rootLogger._loggerFullName = "root";\r
-        _rootLogger._loggerShortName = "root";\r
-\r
-        String logLevel = System.getProperty("xerial.loglevel");\r
-        if (logLevel != null) {\r
-            _rootLogger.setLogLevel(logLevel);\r
-        }\r
-        else {\r
-            logLevel = System.getProperty("loglevel");\r
-            if (logLevel != null) {\r
-                _rootLogger.setLogLevel(logLevel);\r
-            }\r
-        }\r
-\r
-        String useColor = System.getProperty("log.color");\r
-        if (useColor != null)\r
-            _rootLogger._emitEscapeSequence = Boolean.parseBoolean(useColor);\r
-\r
-        String loggerConfigFile = System.getProperty("log.config");\r
-        if (loggerConfigFile != null) {\r
-            try {\r
-                Logger.configure(loggerConfigFile);\r
-            }\r
-            catch (IOException e) {\r
-                e.printStackTrace();\r
-            }\r
-        }\r
-\r
-    }\r
-\r
-    /**\r
-     * hide constructor\r
-     */\r
-    private Logger() {\r
-\r
-    }\r
-\r
-    private Logger(String fullTypeName) {\r
-        _loggerFullName = fullTypeName;\r
-        String[] packageList = _loggerFullName.split("\\.");\r
-        _loggerShortName = packageList[packageList.length - 1];\r
-        if (packageList.length == 1)\r
-            _parentLogger = _rootLogger;\r
-        else {\r
-            String parentPackageName = concatinate(packageList, packageList.length - 1);\r
-            _parentLogger = getLogger(parentPackageName);\r
-        }\r
-    }\r
-\r
-    private String concatinate(String[] packageList, int upTo) {\r
-        StringBuilder builder = new StringBuilder();\r
-        for (int i = 0; i < upTo - 1; i++) {\r
-            builder.append(packageList[i]);\r
-            builder.append(".");\r
-        }\r
-        builder.append(packageList[upTo - 1]);\r
-        return builder.toString();\r
-    }\r
-\r
-    public static Logger getLogger(Class< ? > c) {\r
-        return getLogger(c.getName());\r
-    }\r
-\r
-    public static Logger getLogger(Class< ? > c, String suffix) {\r
-        if (suffix == null || suffix.length() <= 0)\r
-            return getLogger(c);\r
-        else\r
-            return getLogger(String.format("%s-%s", c.getName(), suffix));\r
-    }\r
-\r
-    public static Logger getLogger(Package p) {\r
-        return getLogger(p.getName());\r
-    }\r
-\r
-    public static synchronized Logger getLogger(String fullTypeName) {\r
-        if (fullTypeName == null)\r
-            return _rootLogger;\r
-\r
-        if (_loggerHolder.containsKey(fullTypeName))\r
-            return _loggerHolder.get(fullTypeName);\r
-        else {\r
-            Logger newLogger = new Logger(fullTypeName);\r
-            _loggerHolder.put(fullTypeName, newLogger);\r
-            newLogger._emitEscapeSequence = _rootLogger._emitEscapeSequence;\r
-            return newLogger;\r
-        }\r
-    }\r
-\r
-    public static Logger getRootLogger() {\r
-        return _rootLogger;\r
-    }\r
-\r
-    public static void configure(String configFile) throws IOException {\r
-        configure(new BufferedReader(new FileReader(configFile)));\r
-    }\r
-\r
-    public static void configure(Reader configurationFileReader) throws IOException {\r
-        Properties configProperties = new Properties();\r
-\r
-        StringBuilder sb = new StringBuilder();\r
-        int ch;\r
-        while ((ch = configurationFileReader.read()) > 0) {\r
-            sb.append((char) ch);\r
-        }\r
-        ByteArrayInputStream bs = new ByteArrayInputStream(sb.toString().getBytes());\r
-        configProperties.load(bs);\r
-\r
-        for (Object key : configProperties.keySet()) {\r
-            String[] lhs = ((String) key).split("#");\r
-            String loggerName = lhs[0];\r
-            String value = configProperties.getProperty(key.toString());\r
-            Logger logger = getLogger(loggerName);\r
-            if (lhs.length <= 1) {\r
-                logger.setLogLevel(value);\r
-            }\r
-            else if (lhs.length > 1) {\r
-                // packageName:parameter = value configuration\r
-                String parameter = lhs[1];\r
-                if (parameter.equals("color")) {\r
-                    logger.enableColor(Boolean.parseBoolean(value));\r
-                }\r
-                else {\r
-                    System.err.println("unknown configuration parameter: " + parameter);\r
-                }\r
-            }\r
-            else {\r
-                System.err.println("Error in the logger configuration file: " + key);\r
-            }\r
-        }\r
-    }\r
-\r
-    public String getLoggerName() {\r
-        return _loggerFullName;\r
-    }\r
-\r
-    public String getLoggerShortName() {\r
-        return _loggerShortName;\r
-    }\r
-\r
-    public void setLogLevel(LogLevel logLevel) {\r
-        this._threshold = logLevel;\r
-    }\r
-\r
-    public void setLogLevel(String logLevel) {\r
-        for (LogLevel l : LogLevel.values()) {\r
-            if (l.name().equalsIgnoreCase(logLevel)) {\r
-                setLogLevel(l);\r
-                return;\r
-            }\r
-        }\r
-\r
-        warn("unknown log level: " + logLevel);\r
-    }\r
-\r
-    public LogLevel getLogLevel() {\r
-        return _threshold;\r
-    }\r
-\r
-    public void setLogWriter(LogWriter writer) {\r
-        if (writer == null)\r
-            throw new NullPointerException();\r
-\r
-        this.writer = writer;\r
-    }\r
-\r
-    public boolean trace(Object message) {\r
-        log(LogLevel.TRACE, message);\r
-        return true;\r
-    }\r
-\r
-    public boolean debug(Object message) {\r
-        log(LogLevel.DEBUG, message);\r
-        return true;\r
-    }\r
-\r
-    public boolean info(Object message) {\r
-        log(LogLevel.INFO, message);\r
-        return true;\r
-    }\r
-\r
-    public boolean warn(Object message) {\r
-        log(LogLevel.WARN, message);\r
-        return true;\r
-    }\r
-\r
-    public boolean error(Object message) {\r
-        log(LogLevel.ERROR, message);\r
-        return true;\r
-    }\r
-\r
-    public boolean fatal(Object message) {\r
-        log(LogLevel.FATAL, message);\r
-        return true;\r
-    }\r
-\r
-    /**\r
-     * Use colored console outputs using escape sequences\r
-     * \r
-     * @param enable\r
-     * @return\r
-     */\r
-    public void enableColor(boolean enable) {\r
-        _emitEscapeSequence = enable;\r
-    }\r
-\r
-    /**\r
-     * @return true when escape sequence is used to output the log\r
-     */\r
-    public boolean isColorEnabled() {\r
-        return _emitEscapeSequence;\r
-    }\r
-\r
-    public boolean isDebugEnabled() {\r
-        return isEnabled(LogLevel.DEBUG);\r
-    }\r
-\r
-    public boolean isTraceEnabled() {\r
-        return isEnabled(LogLevel.TRACE);\r
-    }\r
-\r
-    public boolean isInfoEnabled() {\r
-        return isEnabled(LogLevel.INFO);\r
-    }\r
-\r
-    public boolean isWarnEnabled() {\r
-        return isEnabled(LogLevel.WARN);\r
-    }\r
-\r
-    public boolean isErrorEnabled() {\r
-        return isEnabled(LogLevel.ERROR);\r
-    }\r
-\r
-    public boolean isFatalEnalbed() {\r
-        return isEnabled(LogLevel.FATAL);\r
-    }\r
-\r
-    public boolean isEnabled(LogLevel logLevel) {\r
-        if (_threshold == LogLevel.UNSPECIFIED) {\r
-            Logger parent = this;\r
-            while ((parent = parent._parentLogger) != null) {\r
-                if (parent.getLogLevel() == LogLevel.UNSPECIFIED)\r
-                    continue;\r
-\r
-                _threshold = parent.getLogLevel();\r
-                break;\r
-            }\r
-            if (_threshold == LogLevel.UNSPECIFIED)\r
-                return false;\r
-        }\r
-        return _threshold.ordinal() <= logLevel.ordinal();\r
-    }\r
-\r
-    private LogWriter getLogWriter() {\r
-        if (writer != null)\r
-            return writer;\r
-        else {\r
-            if (_parentLogger != null)\r
-                return _parentLogger.getLogWriter();\r
-            else\r
-                return null;\r
-        }\r
-    }\r
-\r
-    private void log(LogLevel logLevel, Object message) {\r
-        if (!isEnabled(logLevel))\r
-            return;\r
-\r
-        LogWriter logOut = getLogWriter();\r
-        if (logOut == null)\r
-            return; // no output is specified\r
-\r
-        try {\r
-            logOut.log(this, logLevel, message);\r
-        }\r
-        catch (IOException e) {\r
-            e.printStackTrace();\r
-        }\r
-    }\r
-}\r