Некоторые недоразумения с журналами в heroku

#laravel #heroku

Вопрос:

У меня есть проект laravel 8, размещенный в heroku. Я пытаюсь делать журналы, подобные моей среде разработки.

В моей среде разработки у меня есть этот файл .env (извлечь) :

 LOG_CHANNEL=daily
LOG_LEVEL=debug
 

И эта конфигурация в моем logging.php файл (извлечение) :

 'channels' => [
        
        .....

        'daily' => [
            'driver' => 'daily',
            'path' => storage_path('logs/laravel.log'),
            'level' => env('LOG_LEVEL', 'debug'),
            'days' => 14,
        ],

....
 

При этом у меня есть один файл в день, и журналы хранятся автоматически 14 дней. Это очень полезно.

введите описание изображения здесь

Я хочу воспроизвести то же самое в heroku hosting.

Как это сделать? Это хорошая практика? Как у вас дела на вашей стороне?

Комментарии:

1. да, это хорошая практика…

2. итак, после развертывания laravel перестает генерировать журналы в течение 14 дней. Я прав

Ответ №1:

В чем путаница с Heroku? Там будет работать то же самое. Если у вас новое приложение, конечно, вы хотите проверить журналы. Я отслеживаю их во всех приложениях, даже если они стабильны.

Журналы хранятся в течение 14 дней, а затем удаляются. Будут сгенерированы новые. https://laravel.com/docs/8.x/logging

Одна вещь, которую трудно понять, — это как получить журналы из Laravel в Heroku.

Ответ заключается в том, что вам нужно подключиться по ssh к экземпляру Heroku, но…на самом деле вы не входите в «ящик», вместо этого вы переходите, так сказать, к копии сеанса.

Итак, если вы согласны с работой в терминале, установите Heroku Cli https://devcenter.heroku.com/articles/heroku-cli а потом напиши

 SSH: heroku ps:exec --app appname
 

https://devcenter.heroku.com/articles/heroku-cli-commands#heroku-ps-exec

Вы также можете получить файл напрямую, написав:

 heroku ps:copy --app appname storage/logs/laravel.log -o /Users/Yourname/Downloads/laravel.log
 

и он загрузит журнал. Ofc проверяет пути и имена файлов, поскольку они могут содержать даты и т. Д.

.env находится в Settings> Config Vars> Reveal Config Vars, но вы, вероятно, это уже поняли?

Надеюсь, это сработает!