- PR -

Javaからシステムログに出力する方法。(log4j)

1
投稿者投稿内容
Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 2006-04-07 16:31
基本的な質問でしたら申し訳ないのですが、Javaからシスログへ出力する方法を探しています。
log4jのSyslogAppenderでやってみようと思うのですが、これだと「syslogd」を以下のコマンドにより、リモート受信モードで起動し直さなければならないようで、困っています。(実際にやってみて確認しました。)
# /etc/rc.d/init.d/syslog stop
# /sbin/syslogd -r

リモート受信モードで起動し直さなくてもよい方法、またはlog4j以外でJavaからシスログへ出力する方法をご存知の方がいらっしゃいましたら、ご教授願います。
よろしくお願いいたします。

tanabo
常連さん
会議室デビュー日: 2003/04/24
投稿数: 34
投稿日時: 2006-04-07 18:36
ググったらこんなソースが見つかりましたが参考になるでしょうか。

http://www.acme.com/resources/classes/Acme/Syslog.java
Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 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 ]
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2006-04-08 21:56
なぜ-r付き(ソケットによるメッセージ受信)を避けるのですか?
Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 2006-04-09 10:26
引用:

Java僧さんの書き込み (2006-04-08 21:56) より:
なぜ-r付き(ソケットによるメッセージ受信)を避けるのですか?



Java僧さん、返信ありがとうございます。
避ける理由としては、
@サーバ起動時に毎回コマンドを実行しなければいけないこと。
Aそもそもローカルマシンのシスログへ書き込むだけでソケット受信を許可する必要があるのかという疑問があること。

以上2つの点が気になっているからです。
話がLinuxのことになってしまうのですが、一般的にローカルマシンへのシスログ出力でも、ソケットによるメッセージ受信はよく使われるのでしょうか?
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2006-04-09 17:02
引用:

トムさんの書き込み (2006-04-09 10:26) より:

@サーバ起動時に毎回コマンドを実行しなければいけないこと。
Aそもそもローカルマシンのシスログへ書き込むだけでソケット受信を許可する必要があるのかという疑問があること。



(1)サーバ起動時にsyslogdを-rオプション付きで自動起動するように構成する方法はあります。
お使いのディストリビューションがわかりませんが、
/etc/sysconfig/syslog で指定できたりすると思います。
起動スクリプトを読んでみてください。

(2)「必要があるかどうか?」の疑問にはうまく答えられないですが、
UnixやLinuxの多くの機能はソケットを利用してクライアントサーバ型で
動作するようにデザインされています。Xウィンドウシステムや
かな漢字変換システムが代表的ですね。
これらはソケットを利用することでプログラム間の結合を疎にして、
シンプルで汎用性のあるものになっています。

でも、ポートを開いておくとクラックされちゃうんじゃないかと心配ですよね。
iptablesなどのパケットフィルタリングと組み合わせて使うと安心です。
シンプルなプログラムを組み合わせて使うのもUnix/Linuxの醍醐味ですよ。
Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 2006-04-12 11:12
引用:

Java僧さんの書き込み (2006-04-09 17:02) より:

でも、ポートを開いておくとクラックされちゃうんじゃないかと心配ですよね。
iptablesなどのパケットフィルタリングと組み合わせて使うと安心です。
シンプルなプログラムを組み合わせて使うのもUnix/Linuxの醍醐味ですよ。




ご教授ありがとうございます。
JavaからLinuxの問題になってきたので、改めて確認してみたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)