Chaton > Archives > 2009/05/26

2009/05/26 00:45:08 UTCshiro
#
なんでだろ。スレッド開始前にopenしてるしなあ。
#
あ、アイコンパスはもうloginの返事に含まれてますよ
2009/05/26 01:51:06 UTCenami
#
lib/gauche/logger.scm見る限り、openするだけではファイルは作られないような。
2009/05/26 01:51:58 UTCshiro
#
へい。実際にlog-formatを呼び出した時点ではじめてファイルがopenされ書き出されます。
#
ってことはえんどうさんのは単にまだログすべき事象が発生してなかったってだけかも。
2009/05/26 03:22:55 UTCえんどう
#
sleepから復帰してみましt。
#
特に何もファイルはできていない模様。
2009/05/26 05:13:03 UTCenami
#
handlerに<chaton-error> objectが渡される場合にはlogのほうは書かれない
2009/05/26 05:18:48 UTCshiro
#
あっそうか。
2009/05/26 03:22:55 UTCえんどう
#
sleepから復帰してみましt。
#
特に何もファイルはできていない模様。
2009/05/26 05:13:03 UTCenami
#
handlerに<chaton-error> objectが渡される場合にはlogのほうは書かれない
2009/05/26 05:18:48 UTCshiro
#
あっそうか。
2009/05/26 08:58:26 UTCえんどう
#
(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:
_______________________________________
#
おちた
2009/05/26 09:03:15 UTCshiro
#
uncaught-exceptionは、例外によって終了したスレッドをjoinしたってことです。
#
今はhandlerが例外を投げた場合を捕まえてないのでそのせいかも。
#
いや、<chaton-error>以外のエラーが起きた場合も、ログだけ書いてraiseするから同じことが起きるか。
#
joinするとこをguardして、<uncaught-exception>のreasonスロットを覗くともともとの例外がわかります。それが手がかりになるかも。
2009/05/26 09:13:00 UTCえんどう
#
りょうかいです。
#
$ #?="/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って...>をれ
2009/05/26 09:42:45 UTCえんどう
#
てすと
#
つうちされない
2009/05/26 10:14:59 UTCenami
#
(radar-handler response)のresponse自体がerror objectですよん
2009/05/26 11:16:49 UTCえんどう
#
(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)
#
こんなかんじでしょうか。
2009/05/26 11:26:40 UTCshiro
#
うーん、chaton-log-openでopenされるのはデフォルトのlog drainではないので、
#
別にradarの方でlog-openしない限り、そのlog-formatはどこにも出力されない。
#
それが意図した動作ならそれでいいけど。
2009/05/26 13:02:46 UTCshiro
#
とりあえずこの部屋のアーカイブ切り替えてみました。
#
PDTだと、上に表示される日付の前日の17:00から当日の17:00までが一日分に入ります。
#
表示はわかりやすいようにもうちょっと工夫する予定。
#
切り方が変わったのでpermalinkが変わる可能性があるんだけど、今の段階なら影響はそれほど大きくないよね。
2009/05/26 13:09:47 UTCshiro
#
既にchatonを運用している場合、アーカイブの切り替えが必要です。
#
chaton-archive-$ROOM に --rebuild オプションをつけて実行してください。
2009/05/26 13:15:10 UTCshiro
#
あと、permalinkのつきかたが変わるのでchaton-viewer-$ROOMも再立ち上げが必要か。
2009/05/26 22:13:25 UTCえんどう
#
そうか、じゃあ外側に投げ返せばいいのかな。
2009/05/26 22:15:13 UTCshiro
#
<chaton-error>の場合もchaton.clientの中でログ取ったほうがいいような気がしてきた。
2009/05/26 23:15:14 UTCえんどう
#
(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)
#
こんな感じでしょうか。
2009/05/26 23:18:04 UTCshiro
#
んー、そこで<uncaught-exception>を投げても捕まえる人がいなけりゃ元の木阿弥
#
(今はhandlerが投げたエラーを捕まえる人がいない)
2009/05/26 23:18:39 UTCえんどう
#
そうなんだ
2009/05/26 23:19:10 UTCshiro
#
今欲しいのはエラーログなんだよね?
2009/05/26 23:19:36 UTCえんどう
#
うぃっす
2009/05/26 23:19:58 UTCshiro
#
そんじゃ<chaton-error>もログとるように変える。ちょっとまって。
#
コミットした。試してみて。
2009/05/26 23:54:46 UTCえんどう
#
てすと