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