0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

laravelのログファイルのパーミッション設定値を.envファイルに持ちたい

Last updated at Posted at 2025-03-05

概要

  • ログファイルのパーミッションを、ローカル環境では手軽さ重視で666にしたいけど、本番では横着せず664か644あたりにしたい
  • という設定をlaravelの.envファイルでやりたい

通常の書き方(設定値直書き)

logging.php
        'daily' => [
            'driver' => 'daily',
            'path' => storage_path('logs/laravel.log'),
            'level' => env('LOG_LEVEL', 'debug'),
            'days' => env('LOG_DAILY_DAYS', 14),
            'replace_placeholders' => true,
            'permission' => 0666, # ここを設定値化したい
        ],

解その1

logging.php
        'daily' => [
            
            'permission' => octdec(env('LOG_PERMISSION')),
        ],
.env.dev(開発環境用.env)
LOG_PERMISSION=666
.env.prod(本番環境用.env)
LOG_PERMISSION=664

解説
通常は 0xxx のように先頭に0をつけることで8進数化させている。
envから読み込んだ値を8進数化するには、octdecを用いる。

解その2

logging.php
        'daily' => [
            
            'permission' => env('LOG_PERMISSION'),
        ],
.env.dev(開発環境用.env)
# 8進数の666を10進数にすると438
LOG_PERMISSION=438
.env.prod(本番環境用.env)
# 8進数の664を10進数にすると436
LOG_PERMISSION=436

これでもいけるけど、解1のほうが直感的かなあと。

だめな例

logging.php
        'daily' => [
            
            'permission' => env('LOG_PERMISSION'),
        ],
.env
LOG_PERMISSION=666
結果
--w--wx-wT 1 apache 1000 689998 Mar  5 21:19 laravel-2025-03-05.log

666を10進数として受け取り、8進数に変換した1232が適用される。

ポエム

monologの設定値permissionが
8進数を受け取るのが基本 なのだけど、
10進数を受け取ると、ご丁寧に8進数に変換してくれる というあたりが地味にいやーんだなと思う次第

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?