|
14 | 14 | import org.graylog2.plugin.outputs.MessageOutput; |
15 | 15 | import org.graylog2.plugin.streams.Stream; |
16 | 16 | import org.graylog2.syslog4j.Syslog; |
| 17 | +import org.graylog2.syslog4j.SyslogConfigIF; |
17 | 18 | import org.graylog2.syslog4j.SyslogIF; |
| 19 | +import org.graylog2.syslog4j.impl.net.tcp.TCPNetSyslogConfig; |
| 20 | +import org.graylog2.syslog4j.impl.net.udp.UDPNetSyslogConfig; |
18 | 21 |
|
19 | 22 | import com.google.inject.assistedinject.Assisted; |
20 | 23 |
|
@@ -72,11 +75,20 @@ public SyslogOutput(@Assisted Stream stream, @Assisted Configuration conf) { |
72 | 75 | } |
73 | 76 |
|
74 | 77 | log.info("Creating syslog output " + protocol + "://" + host + ":" + port + ", format " + format); |
75 | | - syslog = Syslog.getInstance(protocol); |
76 | | - syslog.getConfig().setHost(host); |
77 | | - syslog.getConfig().setPort(port); |
78 | | - syslog.getConfig().setMaxMessageLength(4096); |
79 | | - syslog.getConfig().setTruncateMessage(true); |
| 78 | + SyslogConfigIF config = null; |
| 79 | + if (protocol.toLowerCase().equals("udp")) { |
| 80 | + config = new UDPNetSyslogConfig(); |
| 81 | + } else |
| 82 | + if (protocol.toLowerCase().equals("tcp")) { |
| 83 | + config = new TCPNetSyslogConfig(); |
| 84 | + } |
| 85 | + config.setHost(host); |
| 86 | + config.setPort(port); |
| 87 | + config.setMaxMessageLength(4096); |
| 88 | + config.setTruncateMessage(true); |
| 89 | + |
| 90 | + String hash = protocol + "_" + host + "_" + port + "_" + format; |
| 91 | + syslog = Syslog.createInstance(hash, config); |
80 | 92 |
|
81 | 93 | sender = createSender(format); |
82 | 94 | if (sender instanceof StructuredSender) { |
|
0 commit comments