0

我在 CentosOS linux 环境中,我正在使用 syslog-ng 为我的 php 应用程序配置日志记录。

在 php 方面,我使用以下代码生成日志:

openlog(‘Program1', LOG_NDELAY, LOG_LOCAL1);
syslog(LOG_INFO, "My log message");
closelog();

在我编辑我的 syslog-ng.conf 文件之前,从 php 代码生成的所有日志都已登录到 /var/log/messages。

我想将我的日志保存到 /var/log/program1.log,所以我在 syslog-ng.conf 中添加了以下行:

local1.info /var/log/program1.log

但是当我重新启动 syslog-ng 服务时,我收到以下错误:

Stopping syslog-ng:                                        [FAILED]
Plugin module not found in 'module-path'; module-path='/lib64/syslog-ng', module='afsql'
Error parsing main, syntax error, unexpected LL_IDENTIFIER, expecting $end in /etc/syslog-ng/syslog-ng.conf at line X, column Y:

local1.info /var/log/programname.log
^^^^^^^^^^^

任何帮助将非常感激 :)

4

1 回答 1

0

在我的 syslog-ng.conf 文件中,我删除了以下行:

local1.info /var/log/program1.log

并将其替换为:

destination d_log1 {file("/var/log/program1.log"); };
log { source(s_sys); filter(f_local1); destination(d_log1); };
filter f_local1   { facility(local1); };

注意 - 我还在 syslog-ng.conf 文件中定义了源 s_sys:

source s_sys {
        file ("/proc/kmsg" program_override("kernel: "));
        unix-dgram ("/dev/log");
        internal();
        udp(ip(0.0.0.0) port(514));
};
于 2014-07-04T13:34:05.677 回答