- - PR -
Javaからシステムログに出力する方法。(log4j)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-07 16:31
基本的な質問でしたら申し訳ないのですが、Javaからシスログへ出力する方法を探しています。
log4jのSyslogAppenderでやってみようと思うのですが、これだと「syslogd」を以下のコマンドにより、リモート受信モードで起動し直さなければならないようで、困っています。(実際にやってみて確認しました。) # /etc/rc.d/init.d/syslog stop # /sbin/syslogd -r リモート受信モードで起動し直さなくてもよい方法、またはlog4j以外でJavaからシスログへ出力する方法をご存知の方がいらっしゃいましたら、ご教授願います。 よろしくお願いいたします。 | ||||
|
投稿日時: 2006-04-07 18:36
ググったらこんなソースが見つかりましたが参考になるでしょうか。
http://www.acme.com/resources/classes/Acme/Syslog.java | ||||
|
投稿日時: 2006-04-07 19:06
tanaboさん情報ありがとうございます。
見てみたのですが、これも結局ネットワークからのSyslogの書込みとなり、 始めに掲載させていただいたようにsyslogdを「-r」オブション付きで 起動しないとダメなようです。 なかなかJavaからローカルマシンのsyslogへログを書き込む方法が見つかりません。 最悪、Runtimeクラスからloggerコマンドを実行するようにするしかないのかなぁと 思ってきてます。 log4jのSyslogAppenderでなんとかローカルへsyslog出力できればと思ったのですが。。。 [ メッセージ編集済み 編集者: トム 編集日時 2006-04-07 19:06 ] [ メッセージ編集済み 編集者: トム 編集日時 2006-04-07 19:07 ] | ||||
|
投稿日時: 2006-04-08 21:56
なぜ-r付き(ソケットによるメッセージ受信)を避けるのですか?
| ||||
|
投稿日時: 2006-04-09 10:26
Java僧さん、返信ありがとうございます。 避ける理由としては、 @サーバ起動時に毎回コマンドを実行しなければいけないこと。 Aそもそもローカルマシンのシスログへ書き込むだけでソケット受信を許可する必要があるのかという疑問があること。 以上2つの点が気になっているからです。 話がLinuxのことになってしまうのですが、一般的にローカルマシンへのシスログ出力でも、ソケットによるメッセージ受信はよく使われるのでしょうか? | ||||
|
投稿日時: 2006-04-09 17:02
(1)サーバ起動時にsyslogdを-rオプション付きで自動起動するように構成する方法はあります。 お使いのディストリビューションがわかりませんが、 /etc/sysconfig/syslog で指定できたりすると思います。 起動スクリプトを読んでみてください。 (2)「必要があるかどうか?」の疑問にはうまく答えられないですが、 UnixやLinuxの多くの機能はソケットを利用してクライアントサーバ型で 動作するようにデザインされています。Xウィンドウシステムや かな漢字変換システムが代表的ですね。 これらはソケットを利用することでプログラム間の結合を疎にして、 シンプルで汎用性のあるものになっています。 でも、ポートを開いておくとクラックされちゃうんじゃないかと心配ですよね。 iptablesなどのパケットフィルタリングと組み合わせて使うと安心です。 シンプルなプログラムを組み合わせて使うのもUnix/Linuxの醍醐味ですよ。 | ||||
|
投稿日時: 2006-04-12 11:12
ご教授ありがとうございます。 JavaからLinuxの問題になってきたので、改めて確認してみたいと思います。 |
1