Consider this class private.
Provides utility methods for managing
Properties
instances as well as access to the global configuration
system. Properties by default are loaded from the system properties, system environment, and a classpath resource
file named "log4j2.component.properties". Additional properties can be loaded by implementing a custom
PropertySource
service and specifying it via a
ServiceLoader
file called
META-INF/services/org.apache.logging.log4j.util.PropertySource
with a list of fully qualified class names
implementing that interface.
See Also:
PropertySource
Constructs a PropertiesUtil for a given properties file name on the classpath.
Constructs a PropertiesUtil using a given Properties object as its source of defined properties.
Allows a PropertySource to be added after PropertiesUtil has been created.
Extracts properties that start with or are equals to the specific prefix and returns them in a new Properties
object with the prefix removed.
boolean
Gets the named property as a boolean value.
Retrieves a property that may be prefixed by more than one string.
boolean
Gets the named property as a boolean value.
boolean
Gets the named property as a boolean value.
Gets the named property as a Charset value.
Gets the named property as a Charset value.
double
Gets the named property as a double.
Retrieves a property that may be prefixed by more than one string.
Retrieves a Duration where the String is of the format nnn[unit] where nnn represents an integer value
and unit represents a time unit.
Retrieves a property that may be prefixed by more than one string.
Gets the named property as an integer.
Retrieves a property that may be prefixed by more than one string.
Gets the named property as a long.
Returns the PropertiesUtil used by Log4j.
Gets the named property as a String.
Retrieves a property that may be prefixed by more than one string.
Gets the named property as a String.
Return the system properties or an empty Properties object if an error occurs.
boolean
Returns
true
if the specified property is defined, regardless of its value (it may not have a value).
boolean
Returns true if system properties tell us we are running on Windows.
Partitions a properties map based on common key prefixes up to the first period.
Partitions a properties map based on common key prefixes up to the first period.
Reloads all properties.
PropertiesUtil
Constructs a PropertiesUtil using a given Properties object as its source of defined properties.
Parameters:
props
- the Properties to use by default
PropertiesUtil
public
PropertiesUtil
(
String
propertiesFileName)
Constructs a PropertiesUtil for a given properties file name on the classpath. The properties specified in this
file are used by default. If a property is not defined in this file, then the equivalent system property is used.
Parameters:
propertiesFileName
- the location of properties file to load
getProperties
Returns the PropertiesUtil used by Log4j.
Returns:
the main Log4j PropertiesUtil instance.
addPropertySource
Allows a PropertySource to be added after PropertiesUtil has been created.
Parameters:
propertySource
- the PropertySource to add.
hasProperty
public
boolean
hasProperty
(
String
name)
Returns
true
if the specified property is defined, regardless of its value (it may not have a value).
Parameters:
name
- the name of the property to verify
Returns:
true
if the specified property is defined, regardless of its value
getBooleanProperty
public
boolean
getBooleanProperty
(
String
name)
Gets the named property as a boolean value. If the property matches the string
"true"
(case-insensitive),
then it is returned as the boolean value
true
. Any other non-
null
text in the property is
considered
false
.
Parameters:
name
- the name of the property to look up
Returns:
the boolean value of the property or
false
if undefined.
getBooleanProperty
public
boolean
getBooleanProperty
(
String
name,
boolean defaultValue)
Gets the named property as a boolean value.
Parameters:
name
- the name of the property to look up
defaultValue
- the default value to use if the property is undefined
Returns:
the boolean value of the property or
defaultValue
if undefined.
getBooleanProperty
public
boolean
getBooleanProperty
(
String
name,
boolean defaultValueIfAbsent,
boolean defaultValueIfPresent)
Gets the named property as a boolean value.
Parameters:
name
- the name of the property to look up
defaultValueIfAbsent
- the default value to use if the property is undefined
defaultValueIfPresent
- the default value to use if the property is defined but not assigned
Returns:
the boolean value of the property or
defaultValue
if undefined.
getBooleanProperty
Retrieves a property that may be prefixed by more than one string.
Parameters:
prefixes
- The array of prefixes.
key
- The key to locate.
supplier
- The method to call to derive the default value. If the value is null, null will be returned
if no property is found.
Returns:
The value or null if it is not found.
Since:
2.13.0
getCharsetProperty
Gets the named property as a Charset value.
Parameters:
name
- the name of the property to look up
Returns:
the Charset value of the property or
Charset.defaultCharset()
if undefined.
getCharsetProperty
Gets the named property as a Charset value. If we cannot find the named Charset, see if it is mapped in
file
Log4j-charsets.properties
on the class path.
Parameters:
name
- the name of the property to look up
defaultValue
- the default value to use if the property is undefined
Returns:
the Charset value of the property or
defaultValue
if undefined.
public
double
getDoubleProperty
(
String
name,
double defaultValue)
Gets the named property as a double.
Parameters:
name
- the name of the property to look up
defaultValue
- the default value to use if the property is undefined
Returns:
the parsed double value of the property or
defaultValue
if it was undefined or could not be parsed.
public
int
getIntegerProperty
(
String
name,
int defaultValue)
Gets the named property as an integer.
Parameters:
name
- the name of the property to look up
defaultValue
- the default value to use if the property is undefined
Returns:
the parsed integer value of the property or
defaultValue
if it was undefined or could not be
parsed.
getIntegerProperty
Retrieves a property that may be prefixed by more than one string.
Parameters:
prefixes
- The array of prefixes.
key
- The key to locate.
supplier
- The method to call to derive the default value. If the value is null, null will be returned
if no property is found.
Returns:
The value or null if it is not found.
Since:
2.13.0
public
long
getLongProperty
(
String
name,
long defaultValue)
Gets the named property as a long.
Parameters:
name
- the name of the property to look up
defaultValue
- the default value to use if the property is undefined
Returns:
the parsed long value of the property or
defaultValue
if it was undefined or could not be parsed.
Retrieves a property that may be prefixed by more than one string.
Parameters:
prefixes
- The array of prefixes.
key
- The key to locate.
supplier
- The method to call to derive the default value. If the value is null, null will be returned
if no property is found.
Returns:
The value or null if it is not found.
Since:
2.13.0
getDurationProperty
Retrieves a Duration where the String is of the format nnn[unit] where nnn represents an integer value
and unit represents a time unit.
Parameters:
name
- The property name.
defaultValue
- The default value.
Returns:
The value of the String as a Duration or the default value, which may be null.
Since:
2.13.0
getDurationProperty
Retrieves a property that may be prefixed by more than one string.
Parameters:
prefixes
- The array of prefixes.
key
- The key to locate.
supplier
- The method to call to derive the default value. If the value is null, null will be returned
if no property is found.
Returns:
The value or null if it is not found.
Since:
2.13.0
Retrieves a property that may be prefixed by more than one string.
Parameters:
prefixes
- The array of prefixes.
key
- The key to locate.
supplier
- The method to call to derive the default value. If the value is null, null will be returned
if no property is found.
Returns:
The value or null if it is not found.
Since:
2.13.0
getStringProperty
Gets the named property as a String.
Parameters:
name
- the name of the property to look up
Returns:
the String value of the property or
null
if undefined.
getStringProperty
Gets the named property as a String.
Parameters:
name
- the name of the property to look up
defaultValue
- the default value to use if the property is undefined
Returns:
the String value of the property or
defaultValue
if undefined.
getSystemProperties
Return the system properties or an empty Properties object if an error occurs.
Returns:
The system properties.
reload
public
void
reload
()
Reloads all properties. This is primarily useful for unit tests.
Since:
2.10.0
extractSubset
Extracts properties that start with or are equals to the specific prefix and returns them in a new Properties
object with the prefix removed.
Parameters:
properties
- The Properties to evaluate.
prefix
- The prefix to extract.
Returns:
The subset of properties.
partitionOnCommonPrefixes
Partitions a properties map based on common key prefixes up to the first period.
Parameters:
properties
- properties to partition
Returns:
the partitioned properties where each key is the common prefix (minus the period) and the values are
new property maps without the prefix and period in the key
Since:
partitionOnCommonPrefixes
Partitions a properties map based on common key prefixes up to the first period.
Parameters:
properties
- properties to partition
includeBaseKey
- when true if a key exists with no '.' the key will be included.
Returns:
the partitioned properties where each key is the common prefix (minus the period) and the values are
new property maps without the prefix and period in the key
Since:
2.17.2
isOsWindows
public
boolean
isOsWindows
()
Returns true if system properties tell us we are running on Windows.
Returns:
true if system properties tell us we are running on Windows.