[syslog-ng] is it possible to use if() ... else statements on syslog-ng 3.7?

Jorge Pereira jpereiran at gmail.com
Thu May 11 04:28:27 UTC 2017


Balazs,

Something like that?

set("$(/ $R_MIN 5)", value("min_slice"));
set("$(* $min_slice 5)", value("min_slice"));
set("0${min_slice}", value("min_slice"), condition("min_slice" < "10")); #
pad the "0"


--
Jorge Pereira

On Wed, May 10, 2017 at 7:50 PM, Jorge Pereira <jpereiran at gmail.com> wrote:

> Hi Balazs,
>
> Sorry, But I didn't get your suggestion as well. do you mind to be more
> clearly?
>
> --
> Jorge Pereira
>
> On Wed, May 10, 2017 at 3:42 AM, Balazs Scheidler <bazsi77 at gmail.com>
> wrote:
>
>> I think we have a $(/ $R_MIN 5) template function for integer division,
>> likewise we have multiplication as well, which you can use to achieve the
>> same a lot easier.
>>
>> On May 9, 2017 19:41, "Jorge Pereira" <jpereiran at gmail.com> wrote:
>>
>>> My approach is:
>>>
>>>     rewrite {
>>>         # e.g: 20170417/1000PM
>>>         set("00", value("min_slice"), condition("$R_MIN" >= "0"));
>>>         set("05", value("min_slice"), condition("$R_MIN" >= "5"));
>>>         set("10", value("min_slice"), condition("$R_MIN" >= "10"));
>>>         set("15", value("min_slice"), condition("$R_MIN" >= "15"));
>>>         set("20", value("min_slice"), condition("$R_MIN" >= "20"));
>>>         set("25", value("min_slice"), condition("$R_MIN" >= "25"));
>>>         set("30", value("min_slice"), condition("$R_MIN" >= "30"));
>>>         set("35", value("min_slice"), condition("$R_MIN" >= "35"));
>>>         set("40", value("min_slice"), condition("$R_MIN" >= "40"));
>>>         set("45", value("min_slice"), condition("$R_MIN" >= "45"));
>>>         set("50", value("min_slice"), condition("$R_MIN" >= "50"));
>>>         set("55", value("min_slice"), condition("$R_MIN" >= "55"));
>>>
>>>         # final macro
>>>         set("${YEAR}${MONTH}${DAY}-${HOUR12}${min_slice}${AMPM}",
>>> value("logfmt_file"));
>>>         set("${YEAR}${MONTH}${DAY}/${HOUR12}${min_slice}${AMPM}",
>>> value("logfmt_dir"));
>>>     };
>>>
>>> --
>>> Jorge Pereira
>>>
>>> On Tue, May 9, 2017 at 4:00 AM, James Elstone <james at elstone.net> wrote:
>>>
>>>> Hi,
>>>>
>>>> Are multiple channel{} commands processed in parallel or sequentially?
>>>>
>>>> Kr,
>>>>
>>>> James
>>>>
>>>>
>>>> On 9 May 2017 07:20:05 BST, "Scheidler, Bal√°zs" <
>>>> balazs.scheidler at balabit.com> wrote:
>>>>>
>>>>> This is possible, but with quite ugly syntax. I always wanted to add
>>>>> some syntactic sugar, but never got around to do it.
>>>>>
>>>>> It looks like this:
>>>>>
>>>>> junction {
>>>>>    channel {
>>>>>        # if, with conditions specified as filters
>>>>>        filter { whatever... };
>>>>>        destination { whatever };
>>>>>        flags(final);
>>>>>     };
>>>>>     channel {
>>>>>        # else, you can add filters as well
>>>>>        destination { something else };
>>>>>        flags(final);
>>>>>     };
>>>>> };
>>>>>
>>>>> The key parts:
>>>>> * This can be embedded to any log statement as it is
>>>>> * It uses inline filters and destinations, but you can use other
>>>>> definitions by using simple parens instead of braces.
>>>>> * flags final which causes processing to be stopped at the first
>>>>> match. Without that, you'd be duplicating messages, if the conditions
>>>>> overlap.
>>>>> * You can add any number of channels, you are not limited to one
>>>>> if/else construct. It is more like a filter based switch with multple
>>>>> potential branches.
>>>>>
>>>>> Hope this helps,
>>>>>
>>>>>
>>>>> On May 9, 2017 01:03, "Jorge Pereira" <jpereiran at gmail.com> wrote:
>>>>>
>>>>>> Ops! The documentation explaining only to use with templates.
>>>>>>
>>>>>> Basically, I am looking for how to do the below pseudo-code.
>>>>>>
>>>>>>     destination {
>>>>>>         if ($R_MIN >= 0 && $R_MIN < 30)
>>>>>>             file("/path/file_00m-15m.log");
>>>>>>         else
>>>>>>             file("/path/file_30m-60m.log");
>>>>>>         endif()
>>>>>>     };
>>>>>>
>>>>>> p.s: I need to save the logs in chunks of 30 minutes being 00m-30m &
>>>>>> 31m-60m
>>>>>>
>>>>>> --
>>>>>> Jorge Pereira
>>>>>>
>>>>>> On Mon, May 8, 2017 at 7:52 PM, Jorge Pereira <jpereiran at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> never mind, I found it.
>>>>>>>
>>>>>>> https://www.balabit.com/documents/syslog-ng-ose-latest-guide
>>>>>>> s/en/syslog-ng-ose-guide-admin/html/reference-template-funct
>>>>>>> ions.html
>>>>>>>
>>>>>>> --
>>>>>>> Jorge Pereira
>>>>>>>
>>>>>>> On Mon, May 8, 2017 at 7:46 PM, Jorge Pereira <jpereiran at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> hi team,
>>>>>>>> is it possible to use if() ... else statements on syslog-ng 3.7? I
>>>>>>>> am trying to do something like.
>>>>>>>>
>>>>>>>> if ($value >= X)
>>>>>>>>   ......
>>>>>>>> else
>>>>>>>>   ......
>>>>>>>> --
>>>>>>>> Jorge Pereira
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> ____________________________________________________________
>>>>>> __________________
>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>> --
>>>> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>>>>
>>>> ____________________________________________________________
>>>> __________________
>>>> 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
>>>>
>>>>
>>>>
>>>
>>> ____________________________________________________________
>>> __________________
>>> 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
>>>
>>>
>>>
>> ____________________________________________________________
>> __________________
>> 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/20170511/0ac5346a/attachment-0001.html>


More information about the syslog-ng mailing list