1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.flume.appender;
18
19 import org.apache.logging.log4j.Logger;
20 import org.apache.logging.log4j.core.config.plugins.Plugin;
21 import org.apache.logging.log4j.core.config.plugins.PluginAttr;
22 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
23 import org.apache.logging.log4j.status.StatusLogger;
24
25
26
27
28 @Plugin(name = "Agent", category = "Core", printObject = true)
29 public final class Agent {
30
31 private static final String DEFAULT_HOST = "localhost";
32
33 private static final int DEFAULT_PORT = 35853;
34
35 private static final Logger LOGGER = StatusLogger.getLogger();
36
37 private final String host;
38
39 private final int port;
40
41 private Agent(final String host, final int port) {
42 this.host = host;
43 this.port = port;
44 }
45
46
47
48
49
50 public String getHost() {
51 return host;
52 }
53
54
55
56
57
58 public int getPort() {
59 return port;
60 }
61
62 @Override
63 public String toString() {
64 return "host=" + host + " port=" + port;
65 }
66
67
68
69
70
71
72
73 @PluginFactory
74 public static Agent createAgent(@PluginAttr("host") String host,
75 @PluginAttr("port") final String port) {
76 if (host == null) {
77 host = DEFAULT_HOST;
78 }
79
80 int portNum;
81 if (port != null) {
82 try {
83 portNum = Integer.parseInt(port);
84 } catch (final Exception ex) {
85 LOGGER.error("Error parsing port number " + port, ex);
86 return null;
87 }
88 } else {
89 portNum = DEFAULT_PORT;
90 }
91 return new Agent(host, portNum);
92 }
93 }