Class OptionConverter


  • public class OptionConverter
    extends java.lang.Object
    A convenience class to convert property values to specific types.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static OptionConverter.CharMap[] charMap  
      (package private) static java.lang.String DELIM_START  
      (package private) static int DELIM_START_LEN  
      (package private) static char DELIM_STOP  
      (package private) static int DELIM_STOP_LEN  
      (package private) static java.util.concurrent.ConcurrentMap<java.lang.String,​Level> LEVELS
      Cache of currently known levels.
      private static java.lang.String LOG4J2_LEVEL_CLASS
      Postfix for all Log4j 2.x level names.
      private static Logger LOGGER  
      (package private) static int MAX_CUTOFF_LEVEL
      A Log4j 1.x level above or equal to this value is considered as OFF.
      (package private) static int MIN_CUTOFF_LEVEL
      A Log4j 1.x level below or equal to this value is considered as ALL.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private OptionConverter()
      OptionConverter is a static class.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String[] concatanateArrays​(java.lang.String[] l, java.lang.String[] r)  
      static Level convertLevel​(java.lang.String level, Level defaultLevel)  
      static Level convertLevel​(Priority level)  
      static Level convertLevel​(Level level)  
      static java.lang.String convertSpecialChars​(java.lang.String s)  
      static Level createLevel​(Priority level)  
      static java.lang.String findAndSubst​(java.lang.String key, java.util.Properties props)
      Find the value corresponding to key in props.
      static java.lang.String getSystemProperty​(java.lang.String key, java.lang.String def)
      Very similar to System.getProperty except that the SecurityException is hidden.
      static java.lang.Object instantiateByClassName​(java.lang.String className, java.lang.Class<?> superClass, java.lang.Object defaultValue)
      Instantiate an object given a class name.
      static java.lang.Object instantiateByKey​(java.util.Properties props, java.lang.String key, java.lang.Class superClass, java.lang.Object defaultValue)  
      static void selectAndConfigure​(java.io.InputStream inputStream, java.lang.String clazz, LoggerRepository hierarchy)
      Configure log4j given an InputStream.
      static void selectAndConfigure​(java.net.URL url, java.lang.String clazz, LoggerRepository hierarchy)
      Configure log4j given a URL.
      static java.lang.String substVars​(java.lang.String val, java.util.Properties props)
      Perform variable substitution in string val from the values of keys found in the system propeties.
      private static java.lang.String substVars​(java.lang.String val, java.util.Properties props, java.util.List<java.lang.String> keys)  
      static boolean toBoolean​(java.lang.String value, boolean dEfault)
      If value is "true", then true is returned.
      static long toFileSize​(java.lang.String value, long defaultValue)  
      static int toInt​(java.lang.String value, int dEfault)  
      static Level toLevel​(java.lang.String clazz, java.lang.String levelName, Level defaultValue)
      Converts a custom priority level to a Level object.
      static Level toLevel​(java.lang.String value, Level defaultValue)
      Converts a standard or custom priority level to a Level object.
      (package private) static int toLog4j1Level​(int v2Level)  
      (package private) static int toLog4j2Level​(int v1Level)  
      (package private) static int toSyslogLevel​(int v2Level)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DELIM_START

        static java.lang.String DELIM_START
      • DELIM_STOP

        static char DELIM_STOP
      • DELIM_START_LEN

        static int DELIM_START_LEN
      • DELIM_STOP_LEN

        static int DELIM_STOP_LEN
      • LOGGER

        private static final Logger LOGGER
      • MAX_CUTOFF_LEVEL

        static final int MAX_CUTOFF_LEVEL
        A Log4j 1.x level above or equal to this value is considered as OFF.
      • MIN_CUTOFF_LEVEL

        static final int MIN_CUTOFF_LEVEL
        A Log4j 1.x level below or equal to this value is considered as ALL. Log4j 2.x ALL to TRACE interval is shorter. This is Priority.ALL_INT plus the difference.
      • LEVELS

        static final java.util.concurrent.ConcurrentMap<java.lang.String,​Level> LEVELS
        Cache of currently known levels.
      • LOG4J2_LEVEL_CLASS

        private static final java.lang.String LOG4J2_LEVEL_CLASS
        Postfix for all Log4j 2.x level names.
    • Constructor Detail

      • OptionConverter

        private OptionConverter()
        OptionConverter is a static class.
    • Method Detail

      • concatanateArrays

        public static java.lang.String[] concatanateArrays​(java.lang.String[] l,
                                                           java.lang.String[] r)
      • toLog4j2Level

        static int toLog4j2Level​(int v1Level)
      • toLog4j1Level

        static int toLog4j1Level​(int v2Level)
      • toSyslogLevel

        static int toSyslogLevel​(int v2Level)
      • createLevel

        public static Level createLevel​(Priority level)
      • convertLevel

        public static Level convertLevel​(Priority level)
      • convertLevel

        public static Level convertLevel​(Level level)
        Parameters:
        level -
        Returns:
      • convertLevel

        public static Level convertLevel​(java.lang.String level,
                                         Level defaultLevel)
      • convertSpecialChars

        public static java.lang.String convertSpecialChars​(java.lang.String s)
      • findAndSubst

        public static java.lang.String findAndSubst​(java.lang.String key,
                                                    java.util.Properties props)
        Find the value corresponding to key in props. Then perform variable substitution on the found value.
        Parameters:
        key - The key used to locate the substitution string.
        props - The properties to use in the substitution.
        Returns:
        The substituted string.
      • getSystemProperty

        public static java.lang.String getSystemProperty​(java.lang.String key,
                                                         java.lang.String def)
        Very similar to System.getProperty except that the SecurityException is hidden.
        Parameters:
        key - The key to search for.
        def - The default value to return.
        Returns:
        the string value of the system property, or the default value if there is no property with that key.
        Since:
        1.1
      • instantiateByClassName

        public static java.lang.Object instantiateByClassName​(java.lang.String className,
                                                              java.lang.Class<?> superClass,
                                                              java.lang.Object defaultValue)
        Instantiate an object given a class name. Check that the className is a subclass of superClass. If that test fails or the object could not be instantiated, then defaultValue is returned.
        Parameters:
        className - The fully qualified class name of the object to instantiate.
        superClass - The class to which the new object should belong.
        defaultValue - The object to return in case of non-fulfillment
        Returns:
        The created object.
      • instantiateByKey

        public static java.lang.Object instantiateByKey​(java.util.Properties props,
                                                        java.lang.String key,
                                                        java.lang.Class superClass,
                                                        java.lang.Object defaultValue)
      • selectAndConfigure

        public static void selectAndConfigure​(java.io.InputStream inputStream,
                                              java.lang.String clazz,
                                              LoggerRepository hierarchy)
        Configure log4j given an InputStream.

        The InputStream will be interpreted by a new instance of a log4j configurator.

        All configurations steps are taken on the hierarchy passed as a parameter.

        Parameters:
        inputStream - The configuration input stream.
        clazz - The class name, of the log4j configurator which will parse the inputStream. This must be a subclass of Configurator, or null. If this value is null then a default configurator of PropertyConfigurator is used.
        hierarchy - The LoggerRepository to act on.
        Since:
        1.2.17
      • selectAndConfigure

        public static void selectAndConfigure​(java.net.URL url,
                                              java.lang.String clazz,
                                              LoggerRepository hierarchy)
        Configure log4j given a URL.

        The url must point to a file or resource which will be interpreted by a new instance of a log4j configurator.

        All configurations steps are taken on the hierarchy passed as a parameter.

        Parameters:
        url - The location of the configuration file or resource.
        clazz - The classname, of the log4j configurator which will parse the file or resource at url. 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 url ends in '.xml', in which case DOMConfigurator is used.
        hierarchy - The LoggerRepository to act on.
        Since:
        1.1.4
      • substVars

        public static java.lang.String substVars​(java.lang.String val,
                                                 java.util.Properties props)
                                          throws java.lang.IllegalArgumentException
        Perform variable substitution in string val from the values of keys found in the system propeties.

        The variable substitution delimeters are ${ and }.

        For example, if the System properties contains "key=value", then the call

         String s = OptionConverter.substituteVars("Value of key is ${key}.");
         

        will set the variable s to "Value of key is value.".

        If no value could be found for the specified key, then the props parameter is searched, if the value could not be found there, then substitution defaults to the empty string.

        For example, if system propeties contains no value for the key "inexistentKey", then the call

         String s = OptionConverter.subsVars("Value of inexistentKey is [${inexistentKey}]");
         
        will set s to "Value of inexistentKey is []"

        An IllegalArgumentException is thrown if val contains a start delimeter "${" which is not balanced by a stop delimeter "}".

        Parameters:
        val - The string on which variable substitution is performed.
        props - The properties to use for the substitution.
        Returns:
        The substituted string.
        Throws:
        java.lang.IllegalArgumentException - if val is malformed.
      • substVars

        private static java.lang.String substVars​(java.lang.String val,
                                                  java.util.Properties props,
                                                  java.util.List<java.lang.String> keys)
                                           throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • toBoolean

        public static boolean toBoolean​(java.lang.String value,
                                        boolean dEfault)
        If value is "true", then true is returned. If value is "false", then true is returned. Otherwise, default is returned.

        Case of value is unimportant.

        Parameters:
        value - The value to convert.
        dEfault - The default value.
        Returns:
        the value of the result.
      • toFileSize

        public static long toFileSize​(java.lang.String value,
                                      long defaultValue)
      • toInt

        public static int toInt​(java.lang.String value,
                                int dEfault)
      • toLevel

        public static Level toLevel​(java.lang.String value,
                                    Level defaultValue)
        Converts a standard or custom priority level to a Level object.

        If value is of form "level#classname", then the specified class' toLevel method is called to process the specified level string; if no '#' character is present, then the default Level class is used to process the level value.

        As a special case, if the value parameter is equal to the string "NULL", then the value null will be returned.

        As a Log4j 2.x extension, a value "level#org.apache.logging.log4j.Level" retrieves the corresponding custom Log4j 2.x level.

        If any error occurs while converting the value to a level, the defaultValue parameter, which may be null, is returned.

        Case of value is insignificant for the level, but is significant for the class name part, if present.

        Parameters:
        value - The value to convert.
        defaultValue - The default value.
        Returns:
        the value of the result.
        Since:
        1.1
      • toLevel

        public static Level toLevel​(java.lang.String clazz,
                                    java.lang.String levelName,
                                    Level defaultValue)
        Converts a custom priority level to a Level object.

        If clazz has the special value "org.apache.logging.log4j.Level" a wrapper of the corresponding Log4j 2.x custom level object is returned.

        Parameters:
        clazz - a custom level class,
        levelName - the name of the level,
        defaultValue - the value to return in case an error occurs,
        Returns:
        the value of the result.