Instalando LogViewer no Laravel 5.6

Instalando o pacote LogViewer no Laravel e uma dica para restringirmos o acesso ao link de logs.

Por | Laravel

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:

/* -----------------------------------------------------------------
    |  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.

Aristides Neto

Aristides Neto

Sou programador web focado no back-end, mas esforçado no front e um grande entusiasta em gerenciamento de servidores Linux.

Veja também