Class OptionConverter
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
private static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final OptionConverter.CharMap[]
(package private) static String
(package private) static int
(package private) static char
(package private) static int
(package private) static final ConcurrentMap
<String, Level> Cache of currently known levels.private static final String
Postfix for all Log4j 2.x level names.private static final Logger
(package private) static final int
A Log4j 1.x level above or equal to this value is considered as OFF.(package private) static final int
A Log4j 1.x level below or equal to this value is considered as ALL. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String[]
concatanateArrays
(String[] l, String[] r) static Level
convertLevel
(String level, Level defaultLevel) static Level
convertLevel
(Priority level) static Level
convertLevel
(Level level) static String
static Level
createLevel
(Priority level) static String
findAndSubst
(String key, Properties props) Find the value corresponding tokey
inprops
.static String
getSystemProperty
(String key, String def) Very similar toSystem.getProperty
except that theSecurityException
is hidden.static Object
instantiateByClassName
(String className, Class<?> superClass, Object defaultValue) Instantiate an object given a class name.static Object
instantiateByKey
(Properties props, String key, Class superClass, Object defaultValue) static void
selectAndConfigure
(InputStream inputStream, String clazz, LoggerRepository hierarchy) Configure log4j given anInputStream
.static void
selectAndConfigure
(URL url, String clazz, LoggerRepository hierarchy) Configure log4j given a URL.static String
substVars
(String val, Properties props) Perform variable substitution in stringval
from the values of keys found in the system propeties.private static String
substVars
(String val, Properties props, List<String> keys) static boolean
Ifvalue
is "true", thentrue
is returned.static long
toFileSize
(String value, long defaultValue) static int
static Level
Converts a custom priority level to a Level object.static Level
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)
-
Field Details
-
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
-
MAX_CUTOFF_LEVEL
static final int MAX_CUTOFF_LEVELA Log4j 1.x level above or equal to this value is considered as OFF. -
MIN_CUTOFF_LEVEL
static final int MIN_CUTOFF_LEVELA Log4j 1.x level below or equal to this value is considered as ALL. Log4j 2.x ALL to TRACE interval is shorter. This isPriority.ALL_INT
plus the difference. -
LEVELS
Cache of currently known levels. -
LOG4J2_LEVEL_CLASS
Postfix for all Log4j 2.x level names. -
charMap
-
-
Constructor Details
-
OptionConverter
private OptionConverter()OptionConverter is a static class.
-
-
Method Details
-
concatanateArrays
-
toLog4j2Level
static int toLog4j2Level(int v1Level) -
toLog4j1Level
static int toLog4j1Level(int v2Level) -
toSyslogLevel
static int toSyslogLevel(int v2Level) -
createLevel
-
convertLevel
-
convertLevel
- Parameters:
level
-- Returns:
-
convertLevel
-
convertSpecialChars
-
findAndSubst
Find the value corresponding tokey
inprops
. 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
Very similar toSystem.getProperty
except that theSecurityException
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 Object instantiateByClassName(String className, Class<?> superClass, Object defaultValue) Instantiate an object given a class name. Check that theclassName
is a subclass ofsuperClass
. If that test fails or the object could not be instantiated, thendefaultValue
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 Object instantiateByKey(Properties props, String key, Class superClass, Object defaultValue) -
selectAndConfigure
public static void selectAndConfigure(InputStream inputStream, String clazz, LoggerRepository hierarchy) Configure log4j given anInputStream
.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 theinputStream
. This must be a subclass ofConfigurator
, or null. If this value is null then a default configurator ofPropertyConfigurator
is used.hierarchy
- TheLoggerRepository
to act on.- Since:
- 1.2.17
-
selectAndConfigure
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 aturl
. This must be a subclass ofConfigurator
, or null. If this value is null then a default configurator ofPropertyConfigurator
is used, unless the filename pointed to byurl
ends in '.xml', in which caseDOMConfigurator
is used.hierarchy
- TheLoggerRepository
to act on.- Since:
- 1.1.4
-
substVars
Perform variable substitution in stringval
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 sets
to "Value of inexistentKey is []"An
IllegalArgumentException
is thrown ifval
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:
IllegalArgumentException
- ifval
is malformed.
-
substVars
private static String substVars(String val, Properties props, List<String> keys) throws IllegalArgumentException - Throws:
IllegalArgumentException
-
toBoolean
Ifvalue
is "true", thentrue
is returned. Ifvalue
is "false", thentrue
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
-
toInt
-
toLevel
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 defaultLevel
class is used to process the level value.As a special case, if the
value
parameter is equal to the string "NULL", then the valuenull
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 benull
, 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
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.
-