@Plugin(name="map", category="Lookup") public class MapLookup extends java.lang.Object implements StrLookup
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.String,java.lang.String> |
map
Map keys are variable names and value.
|
Constructor and Description |
---|
MapLookup()
Constructor when used directly as a plugin.
|
MapLookup(java.util.Map<java.lang.String,java.lang.String> map)
Creates a new instance backed by a Map.
|
Modifier and Type | Method and Description |
---|---|
protected java.util.Map<java.lang.String,java.lang.String> |
getMap() |
(package private) static java.util.Map<java.lang.String,java.lang.String> |
initMap(java.lang.String[] srcArgs,
java.util.Map<java.lang.String,java.lang.String> destMap) |
java.lang.String |
lookup(LogEvent event,
java.lang.String key)
Looks up a String key to a String value possibly using the current LogEvent.
|
java.lang.String |
lookup(java.lang.String key)
Looks up a String key to a String value using the map.
|
(package private) static java.util.HashMap<java.lang.String,java.lang.String> |
newMap(int initialCapacity) |
static void |
setMainArguments(java.lang.String... args)
Deprecated.
As of 2.4, use
MainMapLookup.setMainArguments(String[]) |
(package private) static java.util.Map<java.lang.String,java.lang.String> |
toMap(java.util.List<java.lang.String> args) |
(package private) static java.util.Map<java.lang.String,java.lang.String> |
toMap(java.lang.String[] args) |
private final java.util.Map<java.lang.String,java.lang.String> map
public MapLookup()
public MapLookup(java.util.Map<java.lang.String,java.lang.String> map)
map
- the map of keys to values, may be nullstatic java.util.Map<java.lang.String,java.lang.String> initMap(java.lang.String[] srcArgs, java.util.Map<java.lang.String,java.lang.String> destMap)
static java.util.HashMap<java.lang.String,java.lang.String> newMap(int initialCapacity)
@Deprecated public static void setMainArguments(java.lang.String... args)
MainMapLookup.setMainArguments(String[])
public static main(String[])
method calls this method to make its main arguments
available for lookup with the prefix main
.
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"
args
- An application's public static main(String[])
arguments.static java.util.Map<java.lang.String,java.lang.String> toMap(java.util.List<java.lang.String> args)
static java.util.Map<java.lang.String,java.lang.String> toMap(java.lang.String[] args)
protected java.util.Map<java.lang.String,java.lang.String> getMap()
public java.lang.String lookup(LogEvent event, java.lang.String key)
StrLookup
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"));
public java.lang.String lookup(java.lang.String key)
If the map is null, then null is returned. The map result object is converted to a string using toString().