Сделал маленький тест
package test;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
/**
* <dependency>
* <groupId>com.github.jnr</groupId>
* <artifactId>jnr-unixsocket</artifactId>
* <version>0.20</version>
* </dependency>
*/
import jnr.unixsocket.UnixDatagramChannel;
import jnr.unixsocket.UnixSocketAddress;
public class Main {
public static void main(String[] args) throws IOException {
DateTimeFormatter dtf = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
String timestamp = OffsetDateTime.now().format(dtf);
String message = "<14>1 " + timestamp + " myhost myapp 2 msgid test.Main: " + timestamp;
ByteBuffer buf = ByteBuffer.wrap(message.getBytes("UTF-8"));
UnixDatagramChannel channel = UnixDatagramChannel.open();
channel.send(buf, new UnixSocketAddress("/dev/log"));
DatagramSocket socket = new DatagramSocket();
byte[] data = buf.array();
socket.send(new DatagramPacket(data, data.length, InetAddress.getByName("localhost"), 514));
}
}
2018-12-15 22:37:44.536972 hostname [user.info] 1 2018-12-15T22:37:44.083+03:00 myhost myapp 2 msgid test.Main: 2018-12-15T22:37:44.083+03:00
2018-12-15 22:37:44.083 myhost [user.info] myapp[2] test.Main: 2018-12-15T22:37:44.083+03:00
Т.е. то что влетело в УДП он распарсил, а то что упало в юникс-сокет не стал. ЧЗХ и как это поправить? Или это я не умею данные в сокет пихать?