背景/var/log/myappディレクトリに書き込むC/C++アプリケーションの記述方法? Linuxシステムで
は、Application Logsはroot/root
が所有しており、私のシステムでは755を持っている/var/log
、のサブディレクトリに存在します。たとえば、/var/log/mysql
と/var/log/samba
と表示されます。
質問
私はmyappにが/var/log/myapp
に書き込むことができるようにしたい場合は、C/C++でこれを達成するための標準的な方法は何ですか?
思考
は私はsudo a_setup_script.sh
にしたくない場合はsetuid root
のようなクレイジーな何かをする必要がありますか?私はsyslog
ルーチンを認識していますが、私のニーズには不十分です(別のファイルに分かれているので、サブディレクトリが必要です)。
Ubuntuのパッケージング(ディレクトリを設定する)とファイルIOをサブディレクトリに直接書き込む必要がありますか(myapp)?
可能な限り規格に従いたいと思います。私が言及するのを忘れてしまった
補遺
は、myappのは、実際にはデーモンのプロセス(クライアントにリッスンサーバー)であるので、実際に/を実行しますmyapp_userを持っているので、悪いことではないでしょうプロセスを開始します。 Ubuntuのために
答えは、最善の解決策は、syslog
ための強力な、現代の交換rsyslog
ように見えます。必要に応じてファイル/ディレクトリを生成し、syslog
エントリの柔軟なルーティングのための組み込み言語を持ち、C/C++レベルで単純な古いsyslog
APIを使用します。ルーティング情報を保存するには、C/C++でテキストメッセージの独自のエンコードを定義し、適切なrsyslog.conf
と組み合わせてデコードを処理できます。
これをサブディレクトリでも使用できますか?慎重に私のOPを読んでください。もし私のすべてのものを '/ var/log/syslog'にダンプすると、そのファイルは役に立たなくなります。 – kfmfe04
@ kfmfe04はい。アップデートを確認してください。_your_メッセージを_your_ファイルに送信するようにsyslogを設定する必要があります。例: 'news.crit /var/log/news/news.crit news.err/var/log/news/news.err' – user2116939
@ kfmfe04複数の編集をおかけして申し訳ありません。コメントは少し痛いです。 : – user2116939