LoginSignup
1
0

More than 1 year has passed since last update.

Laravelの.envファイルとstorage_pathで躓いた話

Last updated at Posted at 2020-06-12

Laravelを扱うときに最初にいじる設定ファイルの.envについて、少しつまったのとあまり頻繁にいじることもないだろうので備忘録も兼ねて書きます

状況

  • .envに記述したパスの変数LOG_DIRECTORYとデフォルトパスstorage_path('logs/laravel.log')でログの出力先を変えたい
  • ログの出力先はstorage配下としたい

躓いたところ

  • .envとconfig/logging.phpの対応するチャンネルに対して(今回はdaily)以下の用に記述したがうまくログを出してくれない
  • デフォルトでstorage_pathを用いてるから同じ様に書いたら良くない?と思い記述
.env
LOG_DIRECTORY=logs/laravel.log
logging.php
'daily' => [
    'driver' => 'daily',
    'path' => env(storage_path('LOG_DIRECTORY'), storage_path('logs/laravel.log')),
    'level' => env('LOG_LEVEL', 'debug'),
    'days' => 14,
],

結論

  • storage_path('LOG_DIRECTORY')と書いてはいけない。
  • .envに絶対パスを記述する
.env
LOG_DIRECTORY=/laravelのパス/logs/laravel.log
logging.php
'daily' => [
    'driver' => 'daily',
    'path' => env('LOG_DIRECTORY', storage_path('logs/laravel.log')),
    'level' => env('LOG_LEVEL', 'debug'),
    'days' => 14,
],

なぜログが出力されなかったか

.envには環境変数が記述されるが関数の引数として用いることができないため。
storage_path('LOG_DIRECTORY')と記述するとパスが/プロジェクトのpath/'LOG_DIRECTORY'となるらしい...

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0