読者です 読者をやめる 読者になる 読者になる

テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(nim report) プリントデバグとロギング

デバグの基本は観察すること. 観察することの基本はプリントすることだ.

Nimでformatted printingをするには, % procを使う. その意味はPythonとほぼ同じだ. 以下は両方とも, "hoge¥nhige"を出力する.

import strutils
echo "$1, $2" % ["hoge", "hige"]
echo "$o, $i" % ["o", "hoge", "i", "hige"]

少しまともなソフトウェアではロギングしたいものだ. Nimのロギングは, 複数のハンドラに対してメッセージを送ることが出来る. ハンドラとは, console, fileなどである. fileにもログをとりつつ, コンソールでも見るということが出来る. 以下はloggingモジュールのソースコードに書いてあるテスト.

when isMainModule:
  var L = newConsoleLogger()
  var fL = newFileLogger("test.log", fmtStr = verboseFmtStr)
  var rL = newRollingFileLogger("rolling.log", fmtStr = verboseFmtStr)
  handlers.add(L)
  handlers.add(fL)
  handlers.add(rL)
  for i in 0 .. 25:
    info("hello" & $i, [])

いいね