Mojolicious メモ 1 ログの吐き方

| | トラックバック(0)

カテゴリ:

MojoliciousをCGIで実行すると、こんな感じで、詳細なログが、ApacheのErrorLogに書き出される。

[Wed Apr  2 08:43:56 2014] [debug] Your secret passphrase needs to be changed!!!
[Wed Apr  2 08:43:56 2014] [debug] GET "/".
[Wed Apr  2 08:43:56 2014] [debug] Routing to a callback.
[Wed Apr  2 08:43:56 2014] [debug] Rendering template "index.html.ep" from DATA section.
[Wed Apr  2 08:43:56 2014] [debug] 200 OK (0.004035s, 247.831/s).

こんなのあらゆる正常なアクセスでErrorLogに書き込まれてたらErrorLogのファイルが肥大化してしまって仕方ないので、これを抑制する方法を探した。

ログの抑制1:log ディレクトリを作る

app.cgiと同じ場所に log というディレクトリを作れば、そこにログが書き込まれる様になります。手っ取り早いといえば手っ取り早い

ログの抑制2:modeを production にする

Mojoliciousのコードはコードの最後に app->start() ないしは $app->start() とやるので、この直前に、このアプリケーションはproduction(完成品)ですよーという旨を記述してやる。

app->mode('production');
app->start();

これで細かいログはでなくなる。これをやると後述するlog levelが info になるよう。

  • http://mojolicio.us/perldoc/Mojolicious#mode

    The operating mode for your application, defaults to a value from the MOJO_MODE and PLACK_ENV environment variables or development. Right before calling "startup", Mojolicious will pick up the current mode, name the log file after it and raise the log level from debug to info if it has a value other than development.

デフォルトは「 development 」で、startupの直前にどのモードかの判定が行われる。

ログの抑制3:mode level を 引き上げる

2番で書いたやりかたをもっと直接的にやってしまう。

app->log->level('warn');
app->start();

とか。

  • http://mojolicio.us/perldoc/Mojo/Log#level

    Active log level, defaults to debug. Available log levels are debug, info, warn, error and fatal, in that order. Note that the MOJO_LOG_LEVEL environment variable can override this value.

ログレベルは以下の5つ。

  • debug (デフォルト)
  • info
  • warn
  • error
  • fatal

それぞれがどの水準のログを吐くのかは・・・どこにかいてあるんだろう。まあその名前からだいたい想像はできる

トラックバック(0)

このブログ記事を参照しているブログ一覧: Mojolicious メモ 1 ログの吐き方

このブログ記事に対するトラックバックURL: https://nozawashinichi.sakura.ne.jp/MT-4.25/mt-tb.cgi/1199

comments powered by Disqus

このブログ記事について

このページは、Shinichi Nozawaが2014年4月 2日 21:38に書いたブログ記事です。

ひとつ前のブログ記事は「Mojoliciousはじめられた」です。

次のブログ記事は「Mojolicious メモ 2: CGIのルーティング」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。