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

Zend Framework resource.logを設定してログを取る

PHP Zend

まずログファイルの出力先を用意します。 ~/sample/data/logsとします。eclipse上でディレクトリを作成してください。 ※Linux環境ではディレクトリを書き込み許可にしてください。

~/sample/application/configs/application.iniに設定を記述します。

##################################################
# 製品版設定
##################################################
[production]

# エラー表示(しない)
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0

# アプリケーション構成
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"

# フロントコントローラ設定 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0

# ログ設定
resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../data/logs/application_" DATESTAMP ".log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority = 4

##################################################
# 開発版設定(製品版と異なるものだけ上書き記述する)
##################################################
[development : production]

# エラー表示(する)
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

# フロントコントローラ設定 
resources.frontController.params.displayExceptions = 1

# ログ設定
resources.log.stream.filterParams.priority = 7

製品版では警告以上を出力、開発版ではデバッグ以上を出力としてます。 日毎にファイルを分けるために日付入りのファイル名としてます。 DATESTAMPを定義します。 ~/sample/public/index.php

// Applicationディレクトリパスの定義
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// エンビューロメントの定義(環境切り替え用 .htaccessに記述)
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// library(ライブラリを配置している)ディレクトリにインクルードパスを通す
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

// 年月日文字列の定義(ログファイル名に使用)
define('DATESTAMP', Date('Y-m-d'));

// アプリケーションの起動
require_once 'Zend/Application.php';
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();