syslog-ngconfiguration文件是否每15分钟支持一次日志轮转文件?

我使用syslog-ngconfiguration文件destinationconfiguration来创build每小时的日志文件。 我正在使用的configuration如下:

 destination d_hourly {file("/var/log/tracker/pid$PID-track-$YEAR-$MONTH-$DAY-$HOUR.log");}; 

我现在有要求每15分钟或30分钟创build一个文件。 我查看了configuration文件macros,并没有这样的macros(这是预期的行)。 有没有办法在syslog-ng config中写一个自定义函数,它会返回一个基于当前时间的值,并且可以在syslog-ng的目标方向上加上后缀。

还是有其他的方式来实现这一目标?

您可以将分钟值分成一个数字,这将生成分离的文件。 例如:

 destination d_half_hourly {file("/var/log/tracker/pid$PID-track-$YEAR-$MONTH-$DAY-$HOUR-$(/ $MIN 30).log");}; 

由于整数除法,这将把PID 1000的所有日志和date1/23/2015 05:00到05:29放入

/var/log/tracker/pid1000-track-2015-01-23-05-0.log

并从05:30到05:59进入

/var/log/tracker/pid1000-track-2015-01-23-05-1.log

您也可以通过将30更改为另一个除数来增加频率。

没有这样的内置函数,但在更新的syslog-ng版本中,可以在filter中进行各种数值比较: http : //www.balabit.com/sites/default/files/documents/syslog-ng-ose-3.6 -guides / EN / syslog-ng的-OSE-V3.6引导pipe理员/ HTML /filter,comparing.html

如果你将它与embedded式日志path结合起来,我认为你可以创build一个你需要的configuration。 例如,像这样的伪代码(只是为了显示这个想法,它在语法上不正确):

 log { source_mysource log { filter(is-$MIN-less-than-15) destination(file("/var/log/tracker/pid$PID-track-$YEAR-$MONTH-$DAY-$HOUR-0-15.log")) } log { filter(is-$MIN-between-16-and-30) destination(file("/var/log/tracker/pid$PID-track-$YEAR-$MONTH-$DAY-$HOUR-16-30.log")) } ... } 

HTH,

问候,

罗伯特Fekete