<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><font class="Apple-style-span" face="'Andale Mono'">I'd like to configure syslog-ng to send logs to redis via a unix socket. &nbsp;This would require implementing the redis protocol as a template or rewrite rule. &nbsp;The only trick is getting the size in bytes of the message being processed. &nbsp;Is there a macro for this or some other way of determining message size?</font><div><font class="Apple-style-span" face="'Andale Mono'"><br></font></div><div><font class="Apple-style-span" face="'Andale Mono'">The protocol would look like this (pretending there existed a macro, MSG_SIZE):</font></div><div><font class="Apple-style-span" face="'Andale Mono'"><br></font></div><div><div><font class="Apple-style-span" face="'Andale Mono'">*3 &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;(number of arguments)</font></div><div><font class="Apple-style-span" face="'Andale Mono'">$5 &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;(size in bytes of argument 1)</font></div><div><font class="Apple-style-span" face="'Andale Mono'">RPUSH &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;(operation)</font></div><div><font class="Apple-style-span" face="'Andale Mono'">$4 &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;(size in bytes of argument 2)</font></div><div><font class="Apple-style-span" face="'Andale Mono'">logs&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (key)</font></div><div><font class="Apple-style-span" face="'Andale Mono'">$${MSG_SIZE} &nbsp;(size in bytes of argument 3)</font></div><div><font class="Apple-style-span" face="'Andale Mono'">$MSG &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(value)</font></div><div><font class="Apple-style-span" face="'Andale Mono'"><br></font></div><div><font class="Apple-style-span" face="'Andale Mono'">or as a string:</font></div><div><font class="Apple-style-span" face="'Andale Mono'"><br></font></div><div><font class="Apple-style-span" face="'Andale Mono'">*3\r\n$5\r\nRPUSH\r\n$4\r\nlogs\r\n$${MSG_SIZE}\r\n$MSG\r\n</font></div><div><font class="Apple-style-span" face="'Andale Mono'"><br></font></div></div><div><font class="Apple-style-span" face="'Andale Mono'">and finally as a destination with template:</font></div><div><font class="Apple-style-span" face="'Andale Mono'"><br></font></div><div><font class="Apple-style-span" face="'Andale Mono'">destination d_redis { unix-stream("/tmp/redis.sock") template("*3\r\n$5\r\nRPUSH\r\n$4\r\nlogs\r\n$${MSG_SIZE}\r\n$MSG\r\n"); };</font></div><div><font class="Apple-style-span" face="'Andale Mono'"><br></font></div><div><font class="Apple-style-span" face="'Andale Mono'">Does anyone have suggestions of how to accomplish this?</font></div><div><font class="Apple-style-span" face="'Andale Mono'"><br></font></div><div><font class="Apple-style-span" face="'Andale Mono'">Thanks,</font></div><div><font class="Apple-style-span" face="'Andale Mono'"><br></font></div><div><font class="Apple-style-span" face="'Andale Mono'">Jake</font></div></body></html>