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 に答える