[syslog-ng] Check if field in message and use default if not.
Péter, Kókai
peter.kokai at oneidentity.com
Tue Mar 5 06:08:17 UTC 2019
Hello,
You could use rewrite rule for this, but in fact macro expansion is capable
to solve your problem: `${.cake:-no-cake}` where if `.cake` exists uses its
value, otherwise the string after `:-`
@version: 3.20
log {
source { stdin(flags(no-parse)); };
parser { kv-parser(prefix(".")); };
rewrite { set("[${.cake:-no-cake}]" value("MESSAGE")); };
#destination { file("/dev/stdout"
template("${.cake:-undefined}\n")); };
destination { file("/dev/stdout"); };
};
As the result you could either use rewrite/set to add the value to the msg
itself (other destination/parser/filter could use it), or you could just
use it directly in the destination macro expansion.
It really depends on your setup which place you should prefer.
--
Kokan
On Tue, Mar 5, 2019 at 12:56 AM Ronald Fenner <rfenner at gamecircus.com>
wrote:
>
> I generate a Kafka topic to send the message to by doing:
> topic("${topic}.${environment}")
> What I'd like to do if the field wasn't in the json message to provide a
> default value.
>
> Im looking for like a tertiary operator to use In the topic or perhaps a
> rewrite rule.
>
> I see the conditional expressions but from the docs it doesn't look like I
> can use it in the topic or a rewrite rule
> NOTE: My messages are json stings that get parsed and then imploded back
> to json as it's sent.
>
> Thanks
>
> Ronald Fenner
> Network Architect
> Game Circus LLC.
>
> rfenner at gamecircus.com
>
>
> ______________________________________________________________________________
> Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
> Documentation:
> http://www.balabit.com/support/documentation/?product=syslog-ng
> FAQ: http://www.balabit.com/wiki/syslog-ng-faq
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.balabit.hu/pipermail/syslog-ng/attachments/20190305/d17e44cb/attachment.html>
More information about the syslog-ng
mailing list