<div dir="ltr"><div dir="ltr">Hello,<div><br></div><div>You could use *rewrite* rule to add nv-pair to each message:</div><div><br></div><div><div>log {</div><div>        source(s_local);</div><div><br></div><div>        if (message('a')) {</div><div>                rewrite {</div><div>                        set("foo" value("app"));</div><div>                        set("bar" value("location"));</div><div>                };</div><div>        }</div><div>        elif (message('b')) {</div><div>                rewrite {</div><div>                        set("foob" value("app"));</div><div>                        set("barb" value("location"));</div><div>                };</div><div>        }</div><div>        else {</div><div>                rewrite {</div><div>                        set("default" value("app"));</div><div>                        set("default" value("location"));</div><div>                };</div><div>        };</div><div><br></div><div><br></div><div>        destination {</div><div>                file("/dev/stdout" template("$app $location\n"));</div><div>        };</div><div>};</div></div><div><br></div><div>Something like this.</div><div><br></div><div>--</div><div>Kokan</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 22, 2019 at 2:37 PM Faine, Mark R. (MSFC-IS40)[NICS] <<a href="mailto:mark.faine@nasa.gov">mark.faine@nasa.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Is there a way to set variables in syslog-ng?<br>
<br>
I have a log path with about 20  if/else branches and each one does a unnamed destination for that branch:<br>
<br>
log {<br>
     source(pan_splunk);<br>
     if ( tags('mytag') ) {<br>
         destination {<br>
           file("/var/log/remote/backup/$HOST/asa/${HOST}_asa.log"<br>
           create-dirs(yes) dir-owner("splunk") dir-group("splunk") dir-perm(0750));<br>
         };<br>
     } elif ( message('something else') ) {<br>
         destination {<br>
           file("/var/log/remote/backup/$HOST/pubfw/${HOST}_pubfw.log"<br>
           create-dirs(yes) dir-owner("splunk") dir-group("splunk") dir-perm(0750));<br>
         };<br>
     } elif {<br>
         filter { message('foo')   or<br>
             message('bar')           or<br>
             message('baz')  or<br>
     ...<br>
<br>
I'd need to introduce another directory level as a variable and I'd also like to change an existing part of the path to a variable so that then I could then do something like this:<br>
<br>
if ( tags('mytag') ) {<br>
    app = asa<br>
    location = msfc<br>
elif <br>
...<br>
<br>
and at the end I could then just do a single destination that had a file path with the variables<br>
file("/var/log/remote/backup/$location/$HOST/$app/${HOST}_$app.log"<br>
<br>
Thanks,<br>
-Mark<br>
<br>
<br>
<br>
______________________________________________________________________________<br>
Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a><br>
<br>
</blockquote></div>