Instalando LogViewer no Laravel 5.6

Aristides Neto • 24 June, 2018

laravel 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:

php artisan log-viewer:publish
php artisan log-viewer:publish --force
php artisan log-viewer:publish --tag=config
php artisan log-viewer:publish --tag=lang
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.

Tela Dashboard

Listagem de logs

Detalhes do log

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.

Imagem Aristides Neto

Aristides Neto

Atuando na área de Cloud/DevSecOps, com foco em Kubernetes e segurança no processo de CI/CD das aplicações. Entusiasta em gerenciamento de servidores Linux, impressionado com a automatização de processos e provisionamento de máquinas.