web-dev-qa-db-ja.com

アプリケーションログが特定のファイルに移動するようにsyslogを構成する方法

ログファイルを送信するアプリケーションmyappがありますのみから/var/log/myapp.logmyappはC++で記述されています。次のサンプルコードは、ログを/ var/log/syslogにのみ送信します。私のOSはLinux(具体的にはUbuntu 12.04)です。また、私のマシンには、syslogよりもrsyslogがインストールされていることがわかりました。

#include <stdio.h>
#include <unistd.h>
#include <syslog.h>

int main(void) {
    openlog("myapp", LOG_PID|LOG_CONS, LOG_USER);
    syslog(LOG_INFO, "abc 10");
    closelog();
    return 0;
}
11
suresh

Syslog(3)のマンページによると、openlog()の最初のパラメーターは、ファイル名ではなく、ログメッセージのプレフィックスを設定します。 LOG_LOCAL0のような機能を使用して出力にフラグを付けてから、 / etc/syslog.confを使用してsyslogdを構成 これらのログを目的のファイルに送信できます。

8
lupz