Class MapLookup
- java.lang.Object
-
- org.apache.logging.log4j.core.lookup.MapLookup
-
- All Implemented Interfaces:
StrLookup
- Direct Known Subclasses:
JmxRuntimeInputArgumentsLookup
,MainMapLookup
@Plugin(name="map", category="Lookup") public class MapLookup extends Object implements StrLookup
A map-based lookup.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected Map<String,String>
getMap()
String
lookup(String key)
Looks up a String key to a String value using the map.String
lookup(LogEvent event, String key)
Looks up a String key to a String value possibly using the current LogEvent.static void
setMainArguments(String... args)
Deprecated.As of 2.4, useMainMapLookup.setMainArguments(String[])
-
-
-
Method Detail
-
setMainArguments
@Deprecated public static void setMainArguments(String... args)
Deprecated.As of 2.4, useMainMapLookup.setMainArguments(String[])
An application'spublic static main(String[])
method calls this method to make its main arguments available for lookup with the prefixmain
.The map provides two kinds of access: First by index, starting at
"0"
,"1"
and so on. For example, the command line--file path/file.txt -x 2
can be accessed from a configuration file with:"main:0"
="--file"
"main:1"
="path/file.txt"
"main:2"
="-x"
"main:3"
="2"
Second using the argument at position n as the key to access the value at n+1.
"main:--file"
="path/file.txt"
"main:-x"
="2"
- Parameters:
args
- An application'spublic static main(String[])
arguments.- Since:
- 2.1
-
lookup
public String lookup(LogEvent event, String key)
Description copied from interface:StrLookup
Looks up a String key to a String value possibly using the current LogEvent.The internal implementation may use any mechanism to return the value. The simplest implementation is to use a Map. However, virtually any implementation is possible.
For example, it would be possible to implement a lookup that used the key as a primary key, and looked up the value on demand from the database Or, a numeric based implementation could be created that treats the key as an integer, increments the value and return the result as a string - converting 1 to 2, 15 to 16 etc.
This method always returns a String, regardless of the underlying data, by converting it as necessary. For example:
Map<String, Object> map = new HashMap<String, Object>(); map.put("number", new Integer(2)); assertEquals("2", StrLookup.mapLookup(map).lookup("number"));
-
-