#なんでだろ。スレッド開始前にopenしてるしなあ。
#あ、アイコンパスはもうloginの返事に含まれてますよ
#lib/gauche/logger.scm見る限り、openするだけではファイルは作られないような。
#へい。実際にlog-formatを呼び出した時点ではじめてファイルがopenされ書き出されます。
#ってことはえんどうさんのは単にまだログすべき事象が発生してなかったってだけかも。
#sleepから復帰してみましt。
#特に何もファイルはできていない模様。
#handlerに<chaton-error> objectが渡される場合にはlogのほうは書かれない
#あっそうか。
#sleepから復帰してみましt。
#特に何もファイルはできていない模様。
#handlerに<chaton-error> objectが渡される場合にはlogのほうは書かれない
#あっそうか。
#(define (radar-handler response)
(when (pair? response)
(let1 content (assoc-ref response 'content)
(if (instance-of content <chaton-error>)
(begin
(log-format "room-url: " (ref condition 'room-url))
(log-format "message: " (ref condinion 'message)))
(match content [((name (sec mil) body) ... )
(for-each (cut send-notify
(npath-of (*chaton-config*))
(ipath-of (*chaton-config*)) <> <>)
name body)]))))
#f)
#こんな感じでしょうか。
#てすと
#$ radar -c chaton-chaton.conf
#?="/Users/yasuyuki/bin/radar":78:(logpath-of (*chaton-config*))
#?- "/Users/yasuyuki/logs/chaton-chaton.log"
*** UNCAUGHT-EXCEPTION
Stack Trace:
_______________________________________
#おちた
#uncaught-exceptionは、例外によって終了したスレッドをjoinしたってことです。
#今はhandlerが例外を投げた場合を捕まえてないのでそのせいかも。
#いや、<chaton-error>以外のエラーが起きた場合も、ログだけ書いてraiseするから同じことが起きるか。
#joinするとこをguardして、<uncaught-exception>のreasonスロットを覗くともともとの例外がわかります。それが手がかりになるかも。
#りょうかいです。
#$ #?="/Users/yasuyuki/bin/radar":78:(logpath-of (*chaton-config*))
#?- "/Users/yasuyuki/logs/chaton-chaton.log"
*** ERROR: unbound variable: log-format
Stack Trace:
_______________________________________
0 (log-format "error: ~s" e)
At line 83 of "/Users/yasuyuki/bin/radar"
[1]+ Exit 70 radar -c chaton-chaton.conf
#(use gauche.logger)か
#てすと
#$ #?="/Users/yasuyuki/bin/radar":79:(logpath-of (*chaton-config*))
#?- "/Users/yasuyuki/logs/chaton-chaton.log"
*** ERROR: object of class #<class <uncaught-exception>> doesn't have such slot: message
Stack Trace:
_______________________________________
0 (ref e 'message)
At line 85 of "/Users/yasuyuki/bin/radar"
[1]+ Exit 70 radar -c chaton-chaton.conf
#uha
#てすと
#てすと
#$ cat chaton-chaton.log
May 26 17:59:36 radar[11069]: observer thread error: unbound variable: instance-of
May 26 18:07:49 radar[11136]: observer thread error: unbound variable: instance-of
May 26 18:13:01 radar[11172]: observer thread error: unbound variable: instance-of
May 26 18:14:57 radar[11188]: observer thread error: unbound variable: instance-of
May 26 18:16:29 radar[11200]: observer thread error: unbound variable: instance-of
#なんだよinstance-ofって...>をれ
#てすと
#つうちされない
#(radar-handler response)のresponse自体がerror objectですよん
#(define (radar-handler response)
(cond [(pair? response)
(let1 content (assoc-ref response 'content)
(match content [((name (sec mil) body) ... )
(for-each (cut send-notify
(npath-of (*chaton-config*))
(ipath-of (*chaton-config*)) <> <>)
name body)]))]
[(is-a? response <chaton-error>)
(begin
(log-format "room-url: ~s" (ref condition 'room-url))
(log-format "message: ~s" (ref condinion 'message)))])
#f)
#こんなかんじでしょうか。
#うーん、chaton-log-openでopenされるのはデフォルトのlog drainではないので、
#別にradarの方でlog-openしない限り、そのlog-formatはどこにも出力されない。
#それが意図した動作ならそれでいいけど。
#とりあえずこの部屋のアーカイブ切り替えてみました。
#PDTだと、上に表示される日付の前日の17:00から当日の17:00までが一日分に入ります。
#表示はわかりやすいようにもうちょっと工夫する予定。
#切り方が変わったのでpermalinkが変わる可能性があるんだけど、今の段階なら影響はそれほど大きくないよね。
#既にchatonを運用している場合、アーカイブの切り替えが必要です。
#chaton-archive-$ROOM に --rebuild オプションをつけて実行してください。
#あと、permalinkのつきかたが変わるのでchaton-viewer-$ROOMも再立ち上げが必要か。
#そうか、じゃあ外側に投げ返せばいいのかな。
#<chaton-error>の場合もchaton.clientの中でログ取ったほうがいいような気がしてきた。
#(define (radar-handler response)
(cond [(pair? response)
(let1 content (assoc-ref response 'content)
(match content [((name (sec mil) body) ... )
(for-each (cut send-notify
(npath-of (*chaton-config*))
(ipath-of (*chaton-config*)) <> <>)
name body)]))]
[(is-a? response <chaton-error>)
(error <uncaught-exception> :reason response)])
#f)
#こんな感じでしょうか。
#んー、そこで<uncaught-exception>を投げても捕まえる人がいなけりゃ元の木阿弥
#(今はhandlerが投げたエラーを捕まえる人がいない)
#そうなんだ
#今欲しいのはエラーログなんだよね?
#うぃっす
#そんじゃ<chaton-error>もログとるように変える。ちょっとまって。
#コミットした。試してみて。
#てすと