⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 optionconverter.h

📁 log4cxx 0.10 unix下编译包
💻 H
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */#ifndef _LOG4CXX_HELPER_OPTION_CONVERTER_H#define _LOG4CXX_HELPER_OPTION_CONVERTER_H#include <log4cxx/logstring.h>#include <log4cxx/helpers/objectptr.h>namespace log4cxx{        class Level;        class File;        typedef helpers::ObjectPtrT<Level> LevelPtr;        namespace spi        {                class LoggerRepository;                typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr;        }        namespace helpers        {                class Properties;                class Object;                typedef ObjectPtrT<Object> ObjectPtr;                class Class;                /** A convenience class to convert property values to specific types.*/                class LOG4CXX_EXPORT OptionConverter                {                /** OptionConverter is a static class. */                private:                        OptionConverter() {}                public:                        static LogString convertSpecialChars(const LogString& s);                        /**                        If <code>value</code> is "true", then <code>true</code> is                        returned. If <code>value</code> is "false", then                        <code>true</code> is returned. Otherwise, <code>default</code> is                        returned.                        <p>Case of value is unimportant.                        */                        static bool toBoolean(const LogString& value, bool dEfault);                        static int toInt(const LogString& value, int dEfault);                        static long toFileSize(const LogString& value, long dEfault);                        static LevelPtr toLevel(const LogString& value,                                const LevelPtr& defaultValue);                        /**                Find the value corresponding to <code>key</code> in                <code>props</code>. Then perform variable substitution on the                found value.                        */                        static LogString findAndSubst(const LogString& key, Properties& props);/**Perform variable substitution in string <code>val</code> from thevalues of keys found in the system propeties.<p>The variable substitution delimeters are <b>${</b> and <b>}</b>.<p>For example, if the System properties contains "key=value", thenthe call<pre>String s = OptionConverter.substituteVars("Value of key is ${key}.");</pre>will set the variable <code>s</code> to "Value of key is value.".<p>If no value could be found for the specified key, then the<code>props</code> parameter is searched, if the value could notbe found there, then substitution defaults to the empty string.<p>For example, if system propeties contains no value for the key"inexistentKey", then the call<pre>String s = OptionConverter.subsVars("Value of inexistentKey is [${inexistentKey}]");</pre>will set <code>s</code> to "Value of inexistentKey is []"<p>An IllegalArgumentException is thrown if<code>val</code> contains a start delimeter "${" which is notbalanced by a stop delimeter "}". </p>@param val The string on which variable substitution is performed.@param props The properties from which variable substitution is performed.@throws IllegalArgumentException if <code>val</code> is malformed.*/                        static LogString substVars(const LogString& val, Properties& props);                        /**                         *  Gets the specified system property.                          @param key The key to search for.                        @param def The default value to return.                        @return the string value of the system property, or the default                        value if there is no property with that key.                        */                        static LogString getSystemProperty(const LogString& key, const LogString& def);                        /**                        Instantiate an object given a class name. Check that the                        <code>className</code> is a subclass of                        <code>superClass</code>. If that test fails or the object could                        not be instantiated, then <code>defaultValue</code> is returned.                        @param className The fully qualified class name of the object to instantiate.                        @param superClass The class to which the new object should belong.                        @param defaultValue The object to return in case of non-fulfillment                        */                        static ObjectPtr instantiateByClassName(const LogString& className,                                const Class& superClass, const ObjectPtr& defaultValue);                        static ObjectPtr instantiateByKey(Properties& props,                                const LogString& key, const Class& superClass,                                const ObjectPtr& defaultValue);                        /**                        Configure log4cxx given a configFileName.                        <p>The configFileName must point to a file which will be                        interpreted by a new instance of a log4cxx configurator.                        <p>All configurations steps are taken on the                        <code>hierarchy</code> passed as a parameter.                        <p>                        @param configFileName The location of the configuration file.                        @param clazz The classname, of the log4cxx configurator which                        will parse the file <code>configFileName</code>. This must be                        a subclass of Configurator, or null. If this value is null then                        a default configurator of PropertyConfigurator is used, unless the                        filename pointed to by <code>configFileName</code> ends in '.xml',                        in which case DOMConfigurator is used.                        @param hierarchy The Hierarchy to act on.                        */                        static void selectAndConfigure(const File& configFileName,                                const LogString& clazz, spi::LoggerRepositoryPtr& hierarchy);                };        }  // namespace helpers} // namespace log4cxx#endif //_LOG4CXX_HELPER_OPTION_CONVERTER_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -