criado eLog

This commit is contained in:
Luiz Silva 2026-06-17 09:33:58 -03:00
parent 7e06927ca6
commit 5bfc913d65
8 changed files with 326 additions and 3 deletions

View file

@ -204,6 +204,101 @@ declare const defineDayjsBr: ({ dayjs, duration, isSameOrAfter, isSameOrBefore,
declare const link_paiol = "https://paiol.idz.one";
/** Níveis de severidade para o sistema de log estruturado. */
declare enum NivelLog {
/** O mais baixo nível, ideal para rastreamento detalhado de fluxo e execução. */
RASTREAMENTO = "RASTREAMENTO",
/** Usado para informações que ajudam a entender o estado do sistema durante a execução. */
DEPURACAO = "DEPURACAO",
/** Informações gerais e eventos do sistema. */
INFORMACAO = "INFORMACAO",
/** Eventos inesperados, mas que não impedem o funcionamento do sistema. */
AVISO = "AVISO",
/** Erros que impactam o funcionamento do sistema, mas que podem ser recuperados. */
ERRO = "ERRO",
/** O nível mais alto de severidade, indicando falhas que requerem atenção imediata. */
CRITICO = "CRITICO"
}
type DetalheNivel = {
peso: number;
rotulo: string;
emoji: string;
metodo: "debug" | "info" | "warn" | "error";
};
/** Detalhes de cada nível de log — peso para filtragem, emoji e método do console. */
declare const NivelLogDetalhes: Record<NivelLog, DetalheNivel>;
/** Estrutura de uma entrada de log emitida pelo sistema. */
type EntradaLog = {
timestamp: string;
nivel: keyof typeof NivelLog;
/** Identificador da aplicação/instância (ex: "front:e-licencie:12345"). */
app: string;
/** Local no código de onde o log foi emitido (ex: "criarUsuario()"). */
origem: string;
mensagem: string;
dados?: unknown;
};
/** Interface pública do logger retornado por `iniciarELog`. */
type ELogger = {
rastreamento: (pr: {
origem: string;
mensagem: string;
dados?: unknown;
}) => void;
depuracao: (pr: {
origem: string;
mensagem: string;
dados?: unknown;
}) => void;
info: (pr: {
origem: string;
mensagem: string;
dados?: unknown;
}) => void;
aviso: (pr: {
origem: string;
mensagem: string;
dados?: unknown;
}) => void;
erro: (pr: {
origem: string;
mensagem: string;
dados?: unknown;
}) => void;
critico: (pr: {
origem: string;
mensagem: string;
dados?: unknown;
}) => void;
};
/** Opções de configuração do logger, disponíveis no callback de arquivamento. */
type OpoesELogger = {
app: string;
nivelMinimo: keyof typeof NivelLog;
};
/** Tipo do callback de arquivamento de logs. */
type ArquivamentoLog = (entrada: EntradaLog, opcoes: OpoesELogger) => void;
/**
* Inicializa o sistema de log estruturado.
*
* @param opcoes.app - Identificador da aplicação/instância (ex: `"front:e-licencie:12345"`)
* @param opcoes.nivelMinimo - Nível mínimo para exibição no console (padrão: INFORMACAO)
* @param opcoes.arquivamento - Callback opcional para persistir/enviar as entradas de log
*
* @example
* ```ts
* const log = iniciarELog({ app: "front:e-licencie:12345" })
*
* log.info({ origem: "criarUsuario()", mensagem: "Usuário criado", dados: { id: "abc-123" } })
* // → ℹ️ [Informação] [front:e-licencie:12345] [criarUsuario()] Usuário criado
* ```
*/
declare const iniciarELog: (opcoes: {
app: string;
nivelMinimo?: keyof typeof NivelLog;
arquivamento?: ArquivamentoLog;
}) => ELogger;
type tiposArquivo = "imagem" | "documento" | "vídeo" | "outros";
declare const extensoes: {
ext: string;
@ -597,4 +692,4 @@ declare const zNumero: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNumber>;
declare const zNumeroPositivo: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNumber>;
declare const zNumeroInteiro: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNumber>;
export { Produtos, TipagemRotas, type TipoPayloadAuditoria, aleatorio, cacheM, cacheMFixo, cacheMemoria, camposComuns, criarFiltroDelta, defineDayjsBr, erUuid, esperar, extensoes, iniciarDayjsBr, iniciarFiltroDelta, type interfaceConsulta, link_paiol, localValor, nomeVariavel, objetoPg, operadorFiltroDeltaDetalhes, operadores, paraObjetoRegistroPg, pgObjeto, siglas_unidades_medida, texto_busca, tipoArquivo, type tipoColunaFiltroDelta, type tipoCondicaoFiltroDelta, type tipoCondicaoFiltroDeltaTipado, type tipoFiltro, type tipoFiltroDelta, type tipoFiltroDeltaColunaTipada, type tipoOperadorFiltroDelta, tipoUsuarioResiduos, tiposSituacoesElicencie, tx, umaFuncao, umaVariavel, unidades_medida, uuid, uuidV3, uuidV4, uuid_null, validarUuid, verCacheM, zColunaFiltroDelta, zCondicaoFiltroDelta, zCoordenadas, zDocCnpj, zDocCpf, zDocumento, zFiltro, zFiltroDelta, zNumero, zNumeroInteiro, zNumeroPositivo, zOperadorFiltroDelta, zOperadores };
export { type ArquivamentoLog, type ELogger, type EntradaLog, NivelLog, NivelLogDetalhes, type OpoesELogger, Produtos, TipagemRotas, type TipoPayloadAuditoria, aleatorio, cacheM, cacheMFixo, cacheMemoria, camposComuns, criarFiltroDelta, defineDayjsBr, erUuid, esperar, extensoes, iniciarDayjsBr, iniciarELog, iniciarFiltroDelta, type interfaceConsulta, link_paiol, localValor, nomeVariavel, objetoPg, operadorFiltroDeltaDetalhes, operadores, paraObjetoRegistroPg, pgObjeto, siglas_unidades_medida, texto_busca, tipoArquivo, type tipoColunaFiltroDelta, type tipoCondicaoFiltroDelta, type tipoCondicaoFiltroDeltaTipado, type tipoFiltro, type tipoFiltroDelta, type tipoFiltroDeltaColunaTipada, type tipoOperadorFiltroDelta, tipoUsuarioResiduos, tiposSituacoesElicencie, tx, umaFuncao, umaVariavel, unidades_medida, uuid, uuidV3, uuidV4, uuid_null, validarUuid, verCacheM, zColunaFiltroDelta, zCondicaoFiltroDelta, zCoordenadas, zDocCnpj, zDocCpf, zDocumento, zFiltro, zFiltroDelta, zNumero, zNumeroInteiro, zNumeroPositivo, zOperadorFiltroDelta, zOperadores };

File diff suppressed because one or more lines are too long