Netty DelimiterBasedFrameDecoder / multiline

时间:2015-02-04 03:31:48

标签: java tcp netty

我有一个希望不是太独特的问题。我正在尝试在Netty中设置一个syslog处理程序,但我有一个syslog源代码,它没有提供格式良好的单行syslog消息。

简而言之,syslog格式使用换行符作为分隔符,并且消息以小于字符'<'开头。

我在下面有一个简单的例子,说明正在生成的TCP流。我试图弄清楚如何将每一行或每一行解析为一帧。

<128>2014-02-03T12:00:00 localhost program[pid]: message
<128>2014-02-03T12:00:00 localhost program[pid]: message
<128>2014-02-03T12:00:00 localhost program[pid]: exception occurred
    at package.Class.function:line
    at package.Class.function:line
    at package.Class.function:line
    at package.Class.function:line
<128>2014-02-03T12:00:00 localhost program[pid]: message

一种想法是使用/修改DelimiterBasedFrameDecoder来查找\n<,但保留&lt; \n。在缓冲区上,如果没有更多数据排队,只需{{1}}。

另一个想法是将每一行作为一个单独的框架使用,然后将它们合并到另一个处理程序中,但我找不到这样做的例子。我也不知道Netty是否会保留用于重组大型工作池的帧序列。

建议?

0 个答案:

没有答案