Powered by SmartDoc

デバッグ

コマンドラインで実行する

アプリケーションをコマンドラインで起動すると、オフラインモードで実行します。実行すると下記のような文が表示され、入力待ちになります。ここでアプリケーションに渡すフォームデータをname=valueの形式で指定します。最後にCtrl-Dを押すと実行します。

[localhost:/cgi-bin/Examples] user% ./Examples.cgi
(offline mode: enter name=value pairs on standard input)
# Ctrl-D
Content-Type: text/html

<html>
<head>
<title>Examples</title>
</head>
<frameset cols="200,*">
    <frame name="Index" src="?element_id=IndexPage">
    <frame name="Contents" src="?element_id=IntroductionPage">

       <body>
            Use other browser.
        </body>
    </noframes>
</frameset>

ログを出力する

CKLogクラスを使うと簡単なロギングを行うことができます。CKLogには5つの出力レベルがあり、設定されたレベルより優先度の高いログ情報のみを出力します。出力レベルは低いほうからDEBUG < INFO < WARN < ERROR < FATALとなります。

ログ出力メソッド
メソッド 説明
debug(message) メッセージをDEBUGレベルで出力する。
info(message) メッセージをINFOレベルで出力する。
warn(message) メッセージをWARNレベルで出力する。
error(message) メッセージをERRORレベルで出力する。
fatal(message) メッセージをFATALレベルで出力する。

オプション

ロギングに関するオプションは以下のものがあります。直接CKLogオブジェクトに設定することもできますが、オプションをCKApplicationのlog_options属性に設定しておき、CKLogオブジェクトを生成するときに使ってください。

ログの出力先をファイルに設定すると、アプリケーションで発生したエラー(例外)もファイルに出力するようになります。

ロギングオプション
オプション 説明
level 出力レベル。
name プログラム名。
out 出力先。デフォルトでは標準エラーに出力する。
file 出力ファイル名。このオプションかoutオプションのどちらかを設定する。
max_file_size ファイルサイズの指定(出力先にファイルを指定したときのみ有効)。出力先のファイルサイズが指定したサイズを超えると、例外FileSizeErrorを発生する。
options = {‘level’         => CKLog::DEBUG,
           ‘name’          => ‘CGIKit Application’,
           ‘file’          => ‘log.txt’,
           ‘max_file_size’ => 1000000}

app = CKApplication.new
app.log_options = options
app.run
class MainPage < CKComponent
  def logging
    log = CKLog.new(application.log_options)
    log.debug ‘log message’
  end
end