FuelPHPでログファイルの拡張子を変更する方法

シェアする

  • このエントリーをはてなブックマークに追加

FuePHPのログファイルの保存先、ログファイル名、拡張子を変更する必要が出てきました。 設定変更では対応できないので、CoreのLogクラスを継承したクラスを作成して対応します。

configファイル変更

fuel->app->config->production->config.php(もしくは、fuel->app->config->config.phpなど)に以下を追記します。

return array(
    'log_extension' => 'log',  //ログファイルの拡張子(php,log,txt etc..)
);

Logクラスを追加

fuel->app->classes にlog.phpをコピーします。

追加したLogクラスを読み込む

fuel->app->bootstrap.phpのAutoloader::add_classesを以下のように変更します。

Autoloader::add_classes(array(
    // Add classes you want to override here
    // Example: 'View' => APPPATH.'classes/view.php',
//  'Auth' => COREPATH.'packages/myauth/bootstrap.php',
    'Log' => APPPATH.'classes/log.php',  // ←この行を追加
));

これで、fuel->app->logs->20150303.log などのログファイルが作成されていることを確認してください。

詳しくはこちら。 ikolabo/fuelphp-change-logfileextension

EngineYardのログローテーション対応

最近、いじってるEngineYardでは、/data/{apprication_name}/shared/logディレクトリにある*.logファイルを、自動的に30個残してログローテーションしてくれます。これで、DiskFullを防いでくれます。

でも、FuelPHPのアプリケーションログは、デフォルトでは

fuel
  |-app
     |-logs
         |-2015
             |-03
               |-01.php
               |-02.php
               |-03.php

こんな感じで保存されます。

これだと、ログローテーションの対象にはならず、アプリをDeployするたびにアプリケーションログは消えてしまいます。 なので、上記の対応を設定したうえで、以下のアプリケーションログが保存されるディレクトリを変更する必要があります。

fuel->app->config->production->config.php(もしくは、fuel->app->config->config.phpなど)に

return array(
    'log_path' => '/data/{apprication_name}/shared/log/',
);

を書きます。ファイルが存在しなければ追加してください。 {apprication_name}の部分は、EngineYardに登録したアプリケーション名を書いてください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする