Instalando LogViewer no Laravel 5.6
Instalando o pacote LogViewer no Laravel e uma dica para restringirmos o acesso ao link de logs
Fala pessoal tudo beleza?
Hoje vai uma dica de como visualizar os logs do Laravel de uma maneira mais amigável. Quem nunca abriu aquele arquivo de log do Laravel e se deparou com um monte de linhas e se perdeu com tantas informações? Normal.
O LogViewer é um pacote desenvolvido por Arcanedev e está disponível em seu repositório no GitHub. Para mais detalhes sobre o pacote clique aqui.
Instalando LogViewer
Podemos usar o comando abaixo para instalar o pacote no Laravel 5.6:
composer require arcanedev/log-viewer
Para instalação do pacote na versão 5.5 do Laravel execute o comando:
composer require arcanedev/log-viewer:4.4.*
Nota: Para versões anteriores ao 5.5 verifique esse link e altere o comando conforme sua aplicação.
Para quem estiver usando uma versão do Laravel anterior ao 5.5 será necessário registrar o Service Provider em config/app.php
no array providers. Caso não seja seu caso pule esse passo.
'providers' => [
...
Arcanedev\LogViewer\LogViewerServiceProvider::class,
],
Configuração
Antes de começar, devemos fazer uma pequena alteração em nosso arquivo .env
.
O LogViewer suporta apenas o canal de log diário. Então se sua versão é a 5.6 vamos alterar a variável LOG_CHANNEL
que deve estar como slack
, alterando seu valor para daily
.
LOG_CHANNEL=daily
Para instalação do Laravel versão 5.5 ou inferior adicione a linha abaixo no seu arquivo .env.
APP_LOG=daily
Comandos Artisan
O pacote disponibiliza alguns comandos que facilitam o gerenciamento da aplicação. São eles:
- Para publicar os arquivos de configuração e traduções
php artisan log-viewer:publish
- Para forçar a publicação
php artisan log-viewer:publish --force
- Publicar somente o arquivo de configuração
php artisan log-viewer:publish --tag=config
- Publicar somente o arquivo de tradução
php artisan log-viewer:publish --tag=lang
- Requisitos da aplicação e a verificação do arquivo de log
php artisan log-viewer:check
É isso ai. A partir de agora sua aplicação estará rodando no seguinte endereço: http://example.com/log-viewer
.
Veja algumas imagens do LogViewer.
Dicas adicionais
Bom até aqui esta rodando tudo perfeitamente correto? Mas essa url é manjada, qualquer pessoa com conhecimento no framework pode acessar minha url não é? Então bora lá para resolver isso.
Vamos executar um comando que citei acima, irá publicar os arquivos de configurações e traduções do LogViewer.
php artisan log-viewer:publish
Agora temos o arquivo de configuração no diretório config/log-viewer.php
. Nesse arquivo podemos destacar as seguintes opções:
<?php
/* -----------------------------------------------------------------
| Diretório do arquivo de Log do Laravel
| -----------------------------------------------------------------
*/
'storage-path' => storage_path('logs'),
/* -----------------------------------------------------------------
| Configuração da Rota
| -----------------------------------------------------------------
*/
'route' => [
'enabled' => true,
'attributes' => [
'prefix' => 'log-viewer',
'middleware' => env('ARCANEDEV_LOGVIEWER_MIDDLEWARE') ? explode(',', env('ARCANEDEV_LOGVIEWER_MIDDLEWARE')) : null,
],
],
No array route temos o attributes e a chave prefix que é a URL atual para acessarmos o LogViewer. Podemos alterar para log-laravel
por exemplo. A URL ficaria http://example.com/log-laravel
. Bem fácil né?
Ainda assim falta alguma coisa... Dessa maneira qualquer pessoa pode acessar essa página, até mesmo aquele usuário que não esteja autenticado no site. Para alteramos isso reparem que logo abaixo do prefix temos middleware. Ou seja, você pode definir um middleware de autenticação e somente pessoas autorizadas terão acesso a esse link.
Para isso abra seu arquivo .env
e adicione a seguinte linha:
ARCANEDEV_LOGVIEWER_MIDDLEWARE=web,auth,custom
Dessa maneira definimos que os middlewares web, auth e custom terão acesso ao LogViewer. Altere conforme sua aplicação.
É isso aí pessoal. Espero que tenha gostado dessa dica e desse pacote que é uma mão na roda para decifrarmos melhor o log do Laravel.
Até a próxima.