Hi,

The example Python code should be unindented, or you see a different error?

Also, you can always import code in the python block.

With destinations you can specify a path to a python file, so the python block is not needed. But with template functions I've figured the $(python) call would be too crowded if we were passing explicit filename parameters.

But you can encapsulate the python code as well as a wrapper to the python code into a separate file.

Foobar.conf:

python {

from foobar import foobar_template_function

}

template-function foobar "$(python foobar)"

----------

Then you can use:

@include "Foobar.conf"

...
template("$(foobar)");
...

Unfortunately then template function declarations cant take parameters yet from the callsite, which may be a serious limitation in your use-case. But with a conceot above you can completely hide implementation details your actual config.

On Mar 20, 2017 03:53, "Jorge Pereira" <jpereiran@gmail.com> wrote:
Well, based on this[1] document. We should use the python {} statement. But, I would like to keep my python script externally in a separated file and do something like.

python filter_001 {
   /my/script/python001.py
}

log {
   ....
   filter(filter_001);
   ....
};



______________________________________________________________________________
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