# Instalando LogViewer no Laravel 5.6

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](https://github.com/ARCANEDEV/LogViewer?ref=aristides.dev).

## Instalando LogViewer

Podemos usar o comando abaixo para instalar o pacote no Laravel 5.6:

```bash
composer require arcanedev/log-viewer
```

Para instalação do pacote na versão 5.5 do Laravel execute o comando:

```bash
composer require arcanedev/log-viewer:4.4.*
```

*Nota: Para versões anteriores ao 5.5 verifique esse* [*link*](https://github.com/ARCANEDEV/LogViewer/blob/master/_docs/1.Installation-and-Setup.md?ref=aristides.dev#version-compatibility) *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.

```php
'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`.

```bash
LOG_CHANNEL=daily
```

Para instalação do Laravel versão 5.5 ou inferior adicione a linha abaixo no seu arquivo .env.

```bash
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
    

```bash
php artisan log-viewer:publish
```

* Para forçar a publicação
    

```bash
php artisan log-viewer:publish --force
```

* Publicar somente o arquivo de configuração
    

```bash
php artisan log-viewer:publish --tag=config
```

* Publicar somente o arquivo de tradução
    

```bash
php artisan log-viewer:publish --tag=lang
```

* Requisitos da aplicação e a verificação do arquivo de log
    

```bash
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.

![Dashboard Logviewer](https://cdn.hashnode.com/res/hashnode/image/upload/v1735044495119/cda203fa-9943-4acf-8c92-6ce97221feb3.jpeg align="left")

Dashboard Logviewer

![Listagem de logs](https://cdn.hashnode.com/res/hashnode/image/upload/v1735044521212/8e140c4b-6341-499d-baaa-fcf1d56f2a2d.jpeg align="left")

Listagem de logs

![Detalhes do log](https://cdn.hashnode.com/res/hashnode/image/upload/v1735044536775/93b84929-98b9-4e1b-a26d-62929fa6e7ab.jpeg align="left")

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.

```bash
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
<?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:

```bash
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.
