★★ Java の宿題ここで答えます Part 61 ★★at TECH
★★ Java の宿題ここで答えます Part 61 ★★ - 暇つぶし2ch365:デフォルトの名無しさん
07/06/14 04:52:54
>>347
普通syslogdは514/udpだからUDPで514番ポートにログメッセージを送る必要がある。
しかし、SocketHandlerはTCP用。514/tcpをsyslogdが受け付ける仕組みを持たない限り当然エラーになる。
java.util.logging.*ではUDP版のSocketHandlerは無かった気がする。もしあればそれを使えば動くはず。

java.util.logging.*を使用してってことだけど、
1.Log4Jならsyslogに対応していたと思うので、使えるならそれを使う。
2.UDPを扱えるjava.util.logging.Handlerのサブクラスを探して(例えばLog4Jではないがjakartaプロジェクトにあるかも)を使う。

1,2では設問から外れて駄目だということなら、
3.SocketHandlerの代わりにスーパークラスのStreamHandlerを継承して、
  setOutputStreamメソッドでログ情報をUDPで流すように実装したOutputStreamを設定する。
  ログメッセージをバッファに入れて、DatagramPacket(byte[], int, InetAddress, int)でパケットにして、
  DatagramSocket#send(DatagramPacket)で送る。1パケットが1ログメッセージなのでバラして送らないように注意。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch