2012-04-29 4 views
9

私はアプリケーションmyappを持っており、ログファイルのみをから/var/log/myapp.logに送信する必要があります。 myappはC++で書かれています。次のサンプルコードは、/ var/log/syslogにのみログを送信します。私のOSはLinux(Ubuntu 12.04)です。私のマシンには、syslogよりrsyslogがインストールされていることがわかりました。アプリケーションログが特定のファイルに移動するようにsyslogを設定する方法

#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; 
} 

答えて

4

は、syslog(3)によればマンページは、はopenlogのための最初のパラメータは、()ログメッセージの接頭辞ではなく、ファイル名を設定します。 LOG_LOCAL0のような機能を使用して出力にフラグを付け、次にconfigure syslogd using /etc/syslog.confを使用して、それらのログを希望のファイルに送信できます。

+1

私のアプリケーションからのログメッセージが特定のファイルに移動するようにsyslog.confを設定するにはどうすればよいですか?単純なファイルに書き込むことは良い解決策ではありません。このリンクhttp://stackoverflow.com/questions/158457/logging-in-linuxとhttp://stackoverflow.com/users/7740/richardによって与えられた答え – suresh

+0

@suresh答えごとに「共有」リンクからリンクの場所をコピーすることで、答えへのリンクを直接与えることができます。このように - http://stackoverflow.com/a/158493/598175 – deppfx

関連する問題