AllCreator - オールクリエイター



オールクリエイター株式会社―モバイルサイトに強いテクニカルディレクターのプロ集団

 

NetCommonsのTips集について

NetCommonsのプログラムを調べていて当方が気づいたことや、NetCommonsを動かしていく過程ではまったことなどを、Tips集の形で、逐次載せています。NetCommonsデベロッパーの皆様にお役にたつ情報があれば幸いです。なお、ここでNetCommonsと言っているのは、すべてNetCommons2x系ですので、あしからず。

(お断り)ここでの記事やプログラム、設定の例は、なにものも保証するものではありません。お試しになる場合、必ず、皆様の自己責任のもとでお試しください。また、当方の記事内容に誤りがあったり、より正確な解釈、別の解釈がみつかった場合、コメントなどで当方にご一報いただけるとありがたいです。
 

NetCommons 開発Tips

NetCommons Tips >> 記事詳細

2009/02/09

NC2xでwebapp/logs下にログを出力する方法

Tweet ThisSend to Facebook | by:としさん
NC2xでは、PCの場合、画面下にログを出力することができるが、携帯の場合それだと難しいので、ログを出力させたくて調べた内容です。

1)maple/core/LogFactory.class.php の中の、getLog()を読んだ際、
シングルトンのLogger_xxxxクラスのref値(なければnew Logger_xxxx)を返し、$logに代入する。

2)maple/logger下の各Logger_xxxxクラス

Logger.interface.php  //これはLoggerのインターフェイスクラス
           //実装は、下記の実クラスの中で定義する。
Logger_DbRegistManage.class.php
Logger_NoOp.class.php
Logger_ViewDisplayManage.class.php
Logger_SimpleFile.class.php

----
 fatal($message, $caller=null); //fatalレベル(LEVEL_FATAL)以上のログを出力
  error($message, $caller=null);  //errorレベル(LEVEL_ERROR)以上のログを出力
  warn($message, $caller=null);   //warnレベル(LEVEL_WARN)以上のログを出力
  info($message, $caller=null);   //infoレベル(LEVEL_INFO)以上のログを出力
  debug($message, $caller=null);  //debugレベル(LEVEL_DEBUG)以上のログを出力
 trace($message, $callder=null);  //traceレベル(LEVEL_TRACE)以上のログを出力
-----
 システムのログレベルは、LOG_LEVEL であり、それとレベルが比較される。
-----
  ログ形式)
 sprintf("[%s] [%s] %s - %s\n", $now, $levels[$logLevel], $message, $caller);
-----
  ログはPHPのerror_log関数
 @error_log($message, 3, LOG_DIR . LOG_FILENAME);
 によって出力される。

//デファインの調査
//maple/logger/Logger_SimpleFile.class.php:define("LOG_FILENAME",
//"/maple.log");//webapp/config/global-config.ini:LOG_DIR       =  "/logs"
//maple/generate/templates/maple/generate/skeleton/entry.txt:define('LOG_LEVEL',
//LEVEL_TRACE);
//maple/generate/script/generate.php:define('LOG_LEVEL',      LEVEL_WARN);




///////////////////////
//ログ出力のサンプル //
///////////////////////
class ConverterManager(){

    function _buildConverterList($params)

        $log =& LogFactory::getLog();


        if(xxx){
            //エラー発生!
          $log->error("Converterの指定が不正です",
"ConverterManager#_buildConverterList");
     }
}

////////////////////
ログを画面出力からファイル出力に切り替えるための、やりくち
/var/www/html/NChashy/webapp/config/global-config.ini
を2か所修正する(1か所変更、1か所追加)


[global-config]
;;
;; 一般設定
;;
DEBUG_MODE  = false
;//TODO:ConfigUtilsで使用、今後、Mapleデバッグを使用する場合、使えるように修正する必要あり
ACTION_KEY  = action


;;DEFAULT_VIEW   = simple
;;
;; 2009.02.04 Mod by T.H ... viewDisplayManage -> simpleFile
;;
;;DEFAULT_LOGGER = viewDisplayManage
DEFAULT_LOGGER = simpleFile

;;;;;;;;;;
;;
ここにLOG_LEVELを規定しないと、/var/www/html/NChashy/maple/logger/Logger_SimpleFile.class.php
;;
の中で、エラーがでままくるので仕方なく、定義する。DEFAULT_LOGGERをviewに戻す際は、ここを外すこと。
LOG_LEVEL = LEVEL_WARN


00:00 | 投票する | 投票数(0) | コメント(0) | デバッグ