- 1 名前:JavaScriptは板違い、Web制作板をご利用ください [2007/05/15(火) 03:49:29 ]
- 【質問者へ】
回答者の便宜のため、以下の注意事項を遵守してください。 ・質問は【課題提示用テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。 ・JavaScriptは板違い、Web制作板をご利用ください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。 ・回答されたら動作報告を必ずしてください。 【課題提示用テンプレ】 【 課題 】与えられた課題文をそのまま書きます。 《必須》 【 形態 】1. Javaアプリケーション(main()で開始)/2. Applet/3. Servlet/ 4. 携帯(開発環境のver.必須)/5. その他(明記のこと) 《必ず選択》 【 GUI 】1. AWTのみ/2. Swing/3. SWT/4. 制限なし/ 5. その他(明記すること) 《GUIの課題の場合必ず選択》 【 期限 】提出期限、解答希望日を書きます。「できるだけ早く」はNG。 《必須》 【 Ver 】コンソールでjava -versionを実行し、その結果を貼ります。 《必須》 【 用語 】数学用語、専門用語の意味、説明を書きます。 《あれば必須》 【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。 丸投げでない場合は、途中までのソースとその経過報告、 質問点、疑問点を書きます(なるべく丸投げにしてください)。 【回答プログラムの掲載場所】 Java質問スレWiki www.wikiroom.com/java/ ソースポストネット sourcepost.sytes.net/ 【前スレ】 pc11.2ch.net/test/read.cgi/tech/1169300052/
- 364 名前:デフォルトの名無しさん [2007/06/13(水) 22:29:33 ]
- >>347
おながいます
- 365 名前:デフォルトの名無しさん mailto:sage [2007/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ログメッセージなのでバラして送らないように注意。
- 366 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 05:35:30 ]
- 3の方法だと、ログメッセージ毎にパケットを送るためには、
setOutputStreamで設定したOutputStreamがwriteで行う書き込みはバッファに格納するだけで、 StreamHandler#publishの方もオーバーライドして、こちらでバッファ全体を送る処理を行わないといけない。 処理が二ヶ所に分かれて見通しが悪いかも。 それなら、StreamHandlerを継承するよりもHandlerを継承して、Handler#publishを実装して、 この中でLogRecordをUDPパケットにして送出するようにした方がいいかもしれない。 publish以外にflushとcloseも実装しないといけないけど、とりあえず空実装でも大丈夫そう。
- 367 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 06:59:10 ]
- >>347
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29461 java.util.logging.Handlerを継承する方法で。エラー処理はいい加減。
- 368 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 07:12:14 ]
- 忘れてた。
DatagramSocketHandler#close()は空実装にしているけど、socketをcloseするべきかも。
|

|