Metadata-Version: 2.1
Name: handlers-lauto
Version: 1.0.0
Summary: Pacote para gerenciamento de logs
Home-page: https://bitbucket.org/nexfrete/handlers/src/master/
Author: L'auto Cargo Transportes Rodoviário S/A
Author-email: suporte.lautotech@gmail.com
License: MIT License
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: attrs (==19.3.0)
Requires-Dist: certifi (==2020.6.20)
Requires-Dist: chardet (==3.0.4)
Requires-Dist: elasticsearch (==7.8.0)
Requires-Dist: idna (==2.10)
Requires-Dist: more-itertools (==8.4.0)
Requires-Dist: packaging (==20.4)
Requires-Dist: pluggy (==0.13.1)
Requires-Dist: py (==1.9.0)
Requires-Dist: pyparsing (==2.4.7)
Requires-Dist: pytest (==5.4.3)
Requires-Dist: pytz (==2020.1)
Requires-Dist: requests (==2.24.0)
Requires-Dist: requests-aws4auth (==1.0)
Requires-Dist: six (==1.15.0)
Requires-Dist: SQLAlchemy (==1.3.18)
Requires-Dist: urllib3 (==1.25.9)
Requires-Dist: wcwidth (==0.2.5)

# Handlers
### Repositório para tratamento de logs de forma simplificada, o objetivo é permitir criar um dispositivo de log baseado em um arquivo de configuração .INI.

##### Modelo Padrão de Configuração

```
[Handlers]
aws_elastic=elastic
inovacao=rocket
arquivo=rotating
tela=stream

[aws_elastic]
host=endpoint_elastic
access_key=key_elastic
secret_key=skey_elastic
region=region_elastic
index=pytest
level=info

[inovacao]
host=endp_rocket
login=login_rocket
password=pass_rocket
channel=#channel
alias=Pytest BOT
topic=Pytest BOT
method=normal
level=error

[arquivo]
file=log.log
max=10000
level=debug

[tela]
level=debug
```

A tag handlers permite que sejam declarados modelos de handlers sendo a key o nome dado ao log e o valor o tipo de handler. Isso feito, deve existir uma tag para cada handler criado com as configurações necessárias para cada um. Sendo o level necessário sempre

### Definição de Objetos

##### log
- O código de log tem por objetivo converter o arquivo de configuração de log em logs padrão. O objetivo é abstrair os logs gerados.
- Receberá o nome do log ini, log name e o log level
- Criará lista de objetos padrão de log.
- Função log:
	- Recebe um dict e passa para os logs configurados
- Todos os objetos são criados para evitar a perda de logs, recebe o dict e salva em banco criando uma lista de logs a ser enviado para cada handler.

##### es_handler
- Código tem o objetivo de criar um log para o ElasticSearch (Focado na AWS) através de um dict que é passado como dump(Usando json.dump()) para o handler
- Para criar o log é necessário
	- host -> Endpoint do elasticsearch
	- access_key -> Para o endpoint na AWS
	- secret_key -> Para o endpoint na AWS
	- region -> Região onde está hosteado o serviço na AWS
	- index -> Index para salvar no elastic (Ao declarar o handler o indice é criado caso não exista)
	- level -> É o log level do handler

##### rocket_handler
- Código tem o objetivo de criar um log para o RocketChat através de um dict padrão que é passado como dump(Usando json.dump()) para o handler
- Dict Padrão
	- topic -> Tópico da mensagem, ficará em negrito na representação do rocket (String)
	- subtopic -> Subtópico da mensagem, ficará topicalizado na representação do rocket (Dict)
		- "- {SUBTOPIC_KEY} : {SUBTOPIC_VALUE}"
	- msg -> Mensagem ficará circulada por um elemento de código na representação do rocket (Dict)
		- "- {MESSAGE_VALUE}"
- Para criar o log é necessário
	- host -> Host do RocketChat
	- login -> Login do usuário
	- password -> Senha do usuário
	- channel -> Canal onde a conversa será enviada
	- alias -> O nome que aparecerá na tela quando enviar a mensagem
	- topic -> Para Livechat
	- method -> Normal ou Livechat
	- level -> É o log level do handler

##### rotating_file_handler
- Código tem o objetivo de criar um log em uma rotating file handler
- Dict Padrão
	- msg -> Mensagem a ser passada
- Para criar o log é necessário
	- file -> Nome do arquivo
	- max -> maxBytes do arquivo
	- level -> É o log level do handler

##### stream_handler
- Código tem o objetivo de criar um log em stream
- Dict Padrão
	- msg -> Mensagem a ser passada
- Para criar o log é necessário
	- level -> É o log level do handler

