Hatena::Grouprubyist

Going My Ruby Way このページをアンテナに追加 RSSフィード

Ruby ロゴ (C) Ruby Association LLC

2011年08月15日(月)

SSH サーバを作る (その7) リポジトリのブランチ

| 23:19 | SSH サーバを作る (その7) リポジトリのブランチ - Going My Ruby Way を含むブックマーク はてなブックマーク - SSH サーバを作る (その7) リポジトリのブランチ - Going My Ruby Way SSH サーバを作る (その7) リポジトリのブランチ - Going My Ruby Way のブックマークコメント

GitHub リポジトリに、フェーズ 0 完了の "phase0" タグをつけました。

フェーズ1 はブランチ phase1 にコミットしていきます。

フェーズ1 では、バージョン交換まで実装しました。

SSH サーバを作る (その6) logger仕様変更

| 23:12 | SSH サーバを作る (その6) logger仕様変更 - Going My Ruby Way を含むブックマーク はてなブックマーク - SSH サーバを作る (その6) logger仕様変更 - Going My Ruby Way SSH サーバを作る (その6) logger仕様変更 - Going My Ruby Way のブックマークコメント

「挑戦:SSHサーバを作る」です。

logger 仕様の変更しました。変更点は以下です。

(とりあえずのメモです。そのうち、ちゃんとまとめないと。。。)

------

log メソッドは以下のようにしました。

 log(severity=nil, *message) {|l, *msgs| ... }

severity にはメッセージの重要度を指定します。falsy な値を与えると前回と同じ重要度を選択します。省略時は nil です。

messages はログメッセージです。内部で format[] メソッドの引数に与えられます。

  format[*messgaes]

format.[] の戻り値が内部で private メソッドの write に与えられます。

デフォルトの format は以下のようになっています。

  proc {|*msgs| msgs.map(&:to_s).join(": ") }

ブロックが与えられた場合、write の呼び出しに優先して、ブロックがコールされます。ブロックの最初の引数は、logger 自身です。2番目以降は messages です。

  {|logger, *message| ... }

write によるログ出力も、ブロック呼び出しも、threshold による抑止対象になります。メッセージの重要度が threshold より低い場合処理が行なわれません。

また、

  logger << message

は、

  logger.log(nil, message)

と同じです。