jaylog
Biblioteca de logging para Python com rotação de arquivos e envio HTTP para um endpoint remoto.
Instalação
pip install -U --no-cache-dir jaylog
Variáveis de ambiente
As variáveis usam o prefixo JAYLOG_. Podem ser definidas no ambiente do sistema ou em um arquivo .env / .env.logging na raiz do projeto.
| Variável | obrigatório? | Padrão | Descrição |
|---|---|---|---|
JAYLOG_APP_NAME |
SIM | null |
Nome do serviço/bot (usado no nome do arquivo de log) |
JAYLOG_LOG_DIR |
SIM | null |
Caminho do diretório onde os arquivos de log serão salvos |
JAYLOG_LOG_LEVEL |
NÃO | INFO |
Nível mínimo de log (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
JAYLOG_LOG_MAX_BYTES |
NÃO | 5242880 |
Tamanho máximo do arquivo de log antes de rotacionar (bytes) |
JAYLOG_LOG_BACKUP_COUNT |
NÃO | 5 |
Quantidade de arquivos de backup mantidos após rotação |
JAYLOG_LOG_RETENTION_DAYS |
NÃO | 7 |
Dias para manter arquivos de log antigos |
JAYLOG_LOG_HTTP_TIMEOUT |
NÃO | 5.0 |
Timeout em segundos para o envio HTTP |
JAYLOG_LOG_HTTP_ENDPOINT |
NÃO | null |
URL do endpoint que receberá os logs |
JAYLOG_LOG_HTTP_API_KEY |
NÃO | null |
Chave de autenticação enviada no header x-api-key |
JAYLOG_LOG_HTTP_PROXY |
NÃO | null |
URL do proxy para o envio HTTP (ex: http:\\user:password@server:port) |
JAYLOG_LOG_SCREENSHOT_ENABLED |
NÃO | false |
Captura screenshot no momento do log (true/false, apenas Windows) |
Como usar?
Existem alguns cenários diferentes onde a utilização desse lib pode mudar, abaixo estão os cenários mapeados e como realizar configuração para cada um.
Arquivo único
.env.logging
JAYLOG_APP_NAME=meu-bot
JAYLOG_LOG_DIR=C:\logs
main.py
from jaylog import JaylogSettings, get_logger
logger = get_logger(JaylogSettings())
logger.info("Arquivo Único")
Múltiplos Arquivos
.env.logging
JAYLOG_APP_NAME=meu-bot
JAYLOG_LOG_DIR=C:\logs
main.py
from jaylog import JaylogSettings, get_logger, configure
from parse import parse_csv
jaylog_settings = JaylogSettings()
configure(jaylog_settings)
logger = get_logger()
logger.info("Múltiplos Arquivos - main.py")
parse_csv()
parse.py
from jaylog import get_logger
logger = get_logger()
def parse_csv():
logger.info("Múltiplos Arquivos - parse.py")
Alterando Caminho padrão do .env
development.env
JAYLOG_APP_NAME=meu-bot
JAYLOG_LOG_DIR=C:\logs
main.py
from jaylog import JaylogSettings, get_logger
settings = JaylogSettings(_env_file='development.env')
logger = get_logger(settings)
logger.info("Alterando Caminho padrão do .env")
Preparando para produção
[!IMPORTANT] HTTP_ENDPOINT e HTTP_API_KEY (opcionais) 📢
- A configuração HTTP_ENDPOINT e HTTP_API_KEY não precisa ser feita em ambiente local ou de desenvolvimento
- Se apenas uma das duas variáveis HTTP_ENDPOINT ou HTTP_API_KEYS for definida, o envio HTTP é ignorado.
- Caso a aplicação execute em um ambiente que usa um proxy ntlm, defina
JAYLOG_LOG_HTTP_PROXY
[!TIP] Em produção é recomendado usar um diretório específico para suas secrets, para que você possa reutilizar entre diferentes aplicações.
Cenário 1 (secrets definido hardcode no código):
prodution.env
JAYLOG_APP_NAME=meu-bot
JAYLOG_LOG_DIR=C:\logs
$ pwd
/foo/bar/secrets
$ ls -la
JAYLOG_LOG_HTTP_ENDPOIN
JAYLOG_LOG_HTTP_API_KEY
JAYLOG_LOG_HTTP_PROXY
main.py
from jaylog import JaylogSettings, get_logger
settings = JaylogSettings(
_env_file='prodution.env',
_secrets_dir='/foo/bar/secrets/'
)
logger = get_logger(settings)
logger.info("Mensagem de log")
Cenário 2 (secrets definido no .env):
prodution.env
JAYLOG_APP_NAME=meu-bot
JAYLOG_LOG_DIR=C:\logs
JAYLOG_SECRETS_DIR=/foo/bar/secrets
main.py
from jaylog import JaylogSettings, get_logger
# nesse caso é necessário usar a função de classe `reload_secrets`
# pois o diretorio dos secrets foi passado via variável de ambiente
settings = JaylogSettings(_env_file='prodution.env').reload_secrets()
logger = get_logger(settings)
logger.info("Mensagem de log")
Release files for jaylog 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jaylog-0.2.4.tar.gz | 8.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jaylog-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.2 kB
Release files / jaylog-0.2.4.tar.gz
| Download URL | jaylog-0.2.4.tar.gz |
|---|---|
| Size | 8.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e6802e0872ad22fd48bb5e487d0c649ac26cfdfc2b675ed8c7f656d8a4ab07a
|
|
BLAKE2b-256 checksum How to use checksums |
2601e6f6ab94a488b4e294a3f6718d2f76cbee2650b11044c2475f2d63334db4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / jaylog-0.2.4-py3-none-any.whl
| Download URL | jaylog-0.2.4-py3-none-any.whl |
|---|---|
| Size | 11.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
057bd7cd65e06b28e4151f15e61c71889eb547191e99e9b039ca1370a59f3cf7
|
|
BLAKE2b-256 checksum How to use checksums |
2269f5a2ba34ecd3c273b193c66d00f8c4e01df416bf473100a9ff93d6c353b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|