1717
1818import javax .annotation .Nonnull ;
1919import javax .annotation .Nullable ;
20+
21+ import java .io .ByteArrayOutputStream ;
2022import java .io .CharArrayWriter ;
2123import java .io .IOException ;
2224import java .io .StringWriter ;
2325import java .io .Writer ;
2426import java .net .InetAddress ;
2527import java .net .UnknownHostException ;
28+ import java .nio .charset .StandardCharsets ;
2629import java .util .Date ;
2730import java .util .HashSet ;
2831import java .util .Locale ;
@@ -249,6 +252,8 @@ public String toSyslogMessage(MessageFormat messageFormat) {
249252 return toRfc3164SyslogMessage ();
250253 case RFC_5424 :
251254 return toRfc5424SyslogMessage ();
255+ case RFC_5425 :
256+ return toRfc5425SyslogMessage ();
252257 default :
253258 throw new IllegalStateException ("Unsupported message format '" + messageFormat + "'" );
254259 }
@@ -269,11 +274,42 @@ public void toSyslogMessage(@Nonnull MessageFormat messageFormat, @Nonnull Write
269274 case RFC_5424 :
270275 toRfc5424SyslogMessage (out );
271276 break ;
277+ case RFC_5425 :
278+ toRfc5425SyslogMessage (out );
279+ break ;
272280 default :
273281 throw new IllegalStateException ("Unsupported message format '" + messageFormat + "'" );
274282 }
275283 }
276284
285+ /**
286+ * Generates an <a href="http://tools.ietf.org/html/rfc5424">RFC-5425</a> message.
287+ */
288+ public String toRfc5425SyslogMessage () {
289+
290+ StringWriter sw = new StringWriter (msg == null ? 32 : msg .size () + 32 );
291+ try {
292+ toRfc5425SyslogMessage (sw );
293+ } catch (IOException e ) {
294+ throw new IllegalStateException (e );
295+ }
296+ return sw .toString ();
297+ }
298+
299+ /**
300+ * Generates an <a href="http://tools.ietf.org/html/rfc5425">RFC-5425</a> message.
301+ */
302+ public void toRfc5425SyslogMessage (Writer out ) throws IOException {
303+
304+ StringWriter sw = new StringWriter (msg == null ? 32 : msg .size () + 32 );
305+ toRfc5424SyslogMessage (sw );
306+ String rfc5424Message = sw .toString ();
307+ int length = rfc5424Message .getBytes (StandardCharsets .UTF_8 ).length ;
308+ out .write (String .valueOf (length ));
309+ out .write (SP );
310+ out .write (rfc5424Message );
311+ }
312+
277313 /**
278314 * Generates an <a href="http://tools.ietf.org/html/rfc5424">RFC-5424</a> message.
279315 */
0 commit comments