Gauche > Archives > 2010/01/14

2010/01/14 02:18:35 UTCshiro
#
Control.Parallel.Strategiesか。かっこいいな。 
http://poorlytyped.blogspot.com/2010/01/haskell-ray-tracing-parallel.html
2010/01/14 08:50:38 UTC(び)
#
ひょっとしてcronolog相当を自前で持ちたい? >yasuyuki
2010/01/14 09:12:28 UTCeyasuyuki@twitter
#
Kahuaのログをkahua-spvr.log-2010-01-14 などと日別に保存しようとしています。log-formatごとにlog-openするのは煩雑なので、<log-drain>のスロットアクセスをフックすべき?
2010/01/14 09:16:34 UTCshiro
#
んー、どちらかというと最新ログの名前を決め打ちにしといてlogrotateみたいな別プログラムで回す方が柔軟だとは思うけれど。
#
どうしてもログの行き先を変えたいならlog-formatをラップするAPIを提供するのが一番素直じゃないかな。log-drainはその都度作ってもいいし、ひとつを使いまわす (log-formatを呼ぶ前にpathをセットする) でもよし。
#
既にlog-formatを使ってるコードを変えたくないのなら、<log-drain>をサブクラスしてpathのアクセスをフックするってのは可能かもしれない。
2010/01/14 09:21:57 UTCえんどう
#
cronologやlogrotateを使えば可能なのは分かるんだけど、ログ切り替え前後にdaemonを停止/起動したりする必要があるし、その設定が本当に動くのか(Kahuaとは)別個にテストする必要がある。kahua.confに設定すればログが日別に吐かれるならその方が便利なんです
2010/01/14 09:28:18 UTCshiro
#
ログの切り替え前後に停止する必要ないですよ
#
そのためにわざわざlog-formatは一回一回ファイルをopen/closeしてる
2010/01/14 11:17:31 UTC(び)
#
個人的な見解だけど
#
Kahuaをキッチンシンクにはしたくないなぁ、と思ってます
#
で、cronolog的に日ごとのログをとりたいのであれば、むしろログの出力先を標準出力にできるようにして、パイプでcronologに喰わせた方がいいんじゃないのかな? と
#
kahua-spvrにdaemonizeする機能をつけないのも、シンプルにしたいが故だったりしたのですが
#
trunkのkahuaはlog-formatをラップしているので、そこをいじればどうにでも出来るのは確かだけど
#
むしろ全てのログを標準エラー出力に吐くようにして、ログハンドリングは外部プログラムにまかせたいな個人的には
2010/01/14 11:29:24 UTCshiro
#
「ログを標準エラー出力」が難しいのは、ログの切れ目が見つけにくいこと (改行で切りたくても、ログ以来のエラーメッセージが改行を伴わない可能性がある。writeの単位で切ることにすると、プログラムの方で一行のメッセージを複数のwriteで書き出している場合に悲惨なことになる)
#
なので、「ここからここまで一単位のログですよ」と示せるようなAPIはあった方がいいと思う。そっから先の処理は色々変えてもいいけど。
2010/01/14 11:31:09 UTC(び)
#
うん
#
だから、現状kahua:log-formatという関数(現状は単にlog-formatをラップしたもの)を使う流儀は変える必要はないと思ってます
#
むしろ、設定でファイルじゃなくて標準エラー出力に吐けるように出来ればいいかなと
2010/01/14 11:33:47 UTCshiro
#
gauche.logger的には<log-drain>のpathに#tをセットするだけで標準エラー出力になる
2010/01/14 11:33:54 UTC(び)
#
ちなみにdaemontoolsに含まれているmultilogは、改行で終わらないログ出力を扱えるようになってます
#
あまりスマートじゃないけど
#
そうそう
#
そこに設定経由でアクセスする手段が現状のKahuaにはないのです
2010/01/14 11:34:36 UTCshiro
#
ほほう。一定時間以上待って続きが来なければ、とかやってるのかな >multilog
2010/01/14 11:36:44 UTC(び)
#
確かそうです
#
調べたのが前世紀なので詳細は忘れていますが
2010/01/14 12:20:43 UTCえんどう
#
(cond ((equal? logfile "-") (log-open #t :prefix "~Y ~T ~P[~$]: "))
            (logfile (log-open logfile :prefix "~Y ~T ~P[~$]: "))
            (else    (log-open (kahua-logpath "kahua-spvr.log")
                               :prefix "~Y ~T ~P[~$]: ")))
#
現状でこんなんなってるよ>kahua-spvr
2010/01/14 12:56:40 UTC(び)
#
あれ
#
対応済みじゃね?
#
-l - って渡せば標準出力に吐くんだ
#
でも、kahua-keyservのログファイルは決めうちなのか
#
だっさ...
2010/01/14 13:47:50 UTCnaoya_t
#
(び)さんから引き継いだCL forkのバトンを早速次の走者のmasatoiさんに渡しました。
#
というわけで。Schemeバトンいつでも来やがれ!