(L) ubuntu 12.04 syslogをカスタムファイルとして(/var/log/syslogではなく/var/log/mylog) - ubuntu 12.04

(L) ubuntu 12.04 syslogをカスタムファイルとして(/var/log/syslogではなく/var/log/mylog) - ubuntu 12.04

Ubuntu 12.04では、次のsyslog "hello world"の例を正常にテストしました。

// gcc giuspexample.c -o giuspexample

#include <syslog.h>

int  main(int argc, char *argv[])
{
    setlogmask(LOG_UPTO (LOG_NOTICE));

    openlog("atm", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL0);

    syslog(LOG_NOTICE, "Program started by User %d", getuid ());
    syslog(LOG_INFO, "A tree falls in a forest");

    closelog();
    return 0;
}

/var/log/syslogのエントリを読むことができます。以下の指示に従いました。http://www.codealias.info/technotes/syslog_simple_exampleターゲットファイルのパスを変更する方法

echo "local0.*  /var/log/mylog" >> /etc/syslog.conf

しかし、走ろうとしました。

sudo /etc/init.d/syslog restart

動作せず(コマンドが見つかりません)、コンピュータを再起動しても/var/log/mylogへの書き込みは開始されませんが、まだ/var/log/syslogにあります。何が間違っているのか知っている人はいますか?ありがとうございます。

ベストアンサー1

これが私が成功する方法です。

私のフォルダ/etc/rsyslog.dには2つのファイルがあります。

20-ufw.confおよび50-default.conf

ファイルを追加しました。

sudo nano /etc/rsyslog.d/30-mycustomname.conf

内容は次のとおりです。

# Log QSD Centro generated log messages to file
if $programname == 'centro' then /var/log/centro.log
# Uncomment the following to stop logging anything that matches the last rule.
& ~

その後、/var/log/centro.logファイルが存在しないことを確認しました。

sudo rm -f /var/log/centro.log

その後、サービスを再起動します。

sudo service rsyslog restart

最後に、次のコードが機能します。

// gcc centro.c -o centro

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

int  main(int argc, char *argv[])
{
    openlog(NULL, 0, LOG_USER);

    syslog(LOG_INFO, "MORTACCI TUA!!!");

    closelog();
    return 0;
}

おすすめ記事