我正在尝试动态设置系统日志消息的目标,但我无法弄清楚如何执行此操作。我希望根据邮件内容将邮件记录到某些文件夹中。
例如,我的虚构程序将根据其ID记录系统中对象的消息。因此,对象的每个CRUD操作都会记录它的ID。我希望根据它的ID为每个对象提供单独的日志文件。
如果有办法通过正则表达式解析ID,存储ID,然后在目的地使用它,我就能满足我的要求。
这样的东西(显然是伪代码并且不起作用),其中每条日志消息都有对象ID作为日志文件名,在每个日志消息中存储在括号中并且是4位数:
targetNamespace
在这种情况下,会有2个日志文件......
1234.log
6789.log
...每个都有2条消息。
# somehow parse out value that matches the regex \[\s\d][\s\d][\s\d][\s\d]\] and store it in $id
destination df_dest { file("/v/logs/${YEAR}${MONTH}${DAY}/$id.log"); };
filter f_program { program("program"); };
log { source(s_all); filter (f_program); destination (df_dest); flags(final); };
非常感谢任何帮助。
答案 0 :(得分:0)
Syslog 本身不允许您考虑的内容。 syslog facilities允许使用localx
工具记录单独的文件。但它们仅限于8个。
要使用syslog实现您想要的功能,即根据日志消息的内容记录到不同的文件,您必须编写自定义syslog output plugin