From 658a8abaebb5707594b28dd2af7cb6a941ee59d0 Mon Sep 17 00:00:00 2001 From: Luiz Silva Date: Fri, 21 Feb 2025 17:20:13 -0300 Subject: [PATCH] . --- dist/logger.d.ts | 26 ++++++++-------- dist/logger.js | 71 ++++++++++++++++++++------------------------ dist/logger.js.map | 2 +- dist/teste.js | 9 +++++- dist/teste.js.map | 2 +- package.json | 2 +- src/logger.ts | 74 +++++++++++++++++++--------------------------- src/teste.ts | 10 ++++++- 8 files changed, 96 insertions(+), 100 deletions(-) diff --git a/dist/logger.d.ts b/dist/logger.d.ts index febf9dc..76bef18 100644 --- a/dist/logger.d.ts +++ b/dist/logger.d.ts @@ -1,16 +1,16 @@ -interface LogOptions { - app?: string; - conta?: string; - usuario?: string; - detalhes?: unknown[]; +type tipoAmb = { + app: string; + inquilino: string; + usuario: string; eProducao: boolean; -} -export declare const logger: { - /** 🟢 Informação geral */ - info: (mensagem: string, options: LogOptions) => Promise; - /** 🟡 Aviso/atenção necessária */ - warn: (mensagem: string, options: LogOptions) => Promise; - /** 🔴 Erro crítico na execução */ - error: (mensagem: string, options: LogOptions) => Promise; +}; +type tipoLog = { + detalhes?: unknown[]; + __filename?: string; +}; +export declare const logger: ({ inquilino, app, eProducao, usuario }: tipoAmb) => { + info: (mensagem: string, op_tipoLog?: tipoLog) => Promise; + warn: (mensagem: string, op_tipoLog?: tipoLog) => Promise; + error: (mensagem: string, op_tipoLog?: tipoLog) => Promise; }; export {}; diff --git a/dist/logger.js b/dist/logger.js index 679c3ed..b0f9321 100644 --- a/dist/logger.js +++ b/dist/logger.js @@ -7,49 +7,42 @@ exports.logger = void 0; const cross_fetch_1 = __importDefault(require("cross-fetch")); const LOKI_BASE_URL = "https://log.idz.one"; const LOKI_ENDPOINT = "/loki/api/v1/push"; -const createLogger = (level) => { - const sendToLoki = async (mensagem, options) => { - if (!options.eProducao) { - console.log(level, mensagem, options); - return; +const logger = ({ inquilino, app, eProducao, usuario }) => { + const f = (level) => async (mensagem, op_tipoLog) => { + let { __filename, detalhes } = op_tipoLog || {}; + if (!eProducao) { + app = `DEV-${app}`; + } + if (__filename && typeof process != "undefined" && process.cwd()) { + __filename = __filename.replace(process.cwd(), ""); } - const { app, conta, usuario, detalhes = [] } = options; const timestamp = `${Date.now()}000000`; - try { - // Formata a linha de log principal - const mainLog = detalhes.length > 0 - ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" ")}` - : mensagem; - const payload = { - stream: { app, conta, usuario, level }, - values: [ - [ - timestamp, - mainLog, // Linha de log direta - ], + const mainLog = detalhes?.length + ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" ")}` + : mensagem; + const payload = { + stream: { app, inquilino, usuario, level }, + values: [ + [ + timestamp, + mainLog, // Linha de log direta ], - }; - const response = await (0, cross_fetch_1.default)(`${LOKI_BASE_URL}${LOKI_ENDPOINT}`, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ streams: [payload] }), - }); - if (!response.ok) { - throw new Error(`Erro ${response.status}: ${await response.text()}`); - } - } - catch (error) { - console.error("[Logger] Falha no envio:", error); + ], + }; + const response = await (0, cross_fetch_1.default)(`${LOKI_BASE_URL}${LOKI_ENDPOINT}`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ streams: [payload] }), + }); + if (!response.ok) { + throw new Error(`Erro ${response.status}: ${await response.text()}`); } }; - return sendToLoki; -}; -exports.logger = { - /** 🟢 Informação geral */ - info: createLogger("info"), - /** 🟡 Aviso/atenção necessária */ - warn: createLogger("warn"), - /** 🔴 Erro crítico na execução */ - error: createLogger("error"), + return { + info: f("info"), + warn: f("warn"), + error: f("error"), + }; }; +exports.logger = logger; //# sourceMappingURL=logger.js.map \ No newline at end of file diff --git a/dist/logger.js.map b/dist/logger.js.map index 722a6bf..08fe8ef 100644 --- a/dist/logger.js.map +++ b/dist/logger.js.map @@ -1 +1 @@ -{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAoC;AAEpC,MAAM,aAAa,GAAG,qBAAqB,CAAA;AAC3C,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAsBzC,MAAM,YAAY,GAAG,CAAC,KAAe,EAAE,EAAE;IACvC,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAE,OAAmB,EAAE,EAAE;QACjE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;QACtD,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAA;QAEvC,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,OAAO,GACX,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,GAAG,QAAQ,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACrE,CAAC,CAAC,QAAQ,CAAA;YAEd,MAAM,OAAO,GAAe;gBAC1B,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;gBACtC,MAAM,EAAE;oBACN;wBACE,SAAS;wBACT,OAAO,EAAE,sBAAsB;qBAChC;iBACF;aACF,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAU,EAAC,GAAG,aAAa,GAAG,aAAa,EAAE,EAAE;gBACpE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;aAC7C,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;QAClD,CAAC;IACH,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,0BAA0B;IAC1B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,kCAAkC;IAClC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,kCAAkC;IAClC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;CAC7B,CAAA"} \ No newline at end of file +{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAoC;AAEpC,MAAM,aAAa,GAAG,qBAAqB,CAAA;AAC3C,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAgBlC,MAAM,MAAM,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAW,EAAE,EAAE;IACxE,MAAM,CAAC,GACL,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,EAAE,QAAgB,EAAE,UAAoB,EAAE,EAAE;QACrE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,UAAU,IAAI,EAAE,CAAA;QAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,GAAG,OAAO,GAAG,EAAE,CAAA;QACpB,CAAC;QAED,IAAI,UAAU,IAAI,OAAO,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;YACjE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAA;QAEvC,MAAM,OAAO,GAAG,QAAQ,EAAE,MAAM;YAC9B,CAAC,CAAC,GAAG,QAAQ,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACrE,CAAC,CAAC,QAAQ,CAAA;QAEZ,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC1C,MAAM,EAAE;gBACN;oBACE,SAAS;oBACT,OAAO,EAAE,sBAAsB;iBAChC;aACF;SACF,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAU,EAAC,GAAG,aAAa,GAAG,aAAa,EAAE,EAAE;YACpE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SAC7C,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACtE,CAAC;IACH,CAAC,CAAA;IAEH,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;KAClB,CAAA;AACH,CAAC,CAAA;AA7CY,QAAA,MAAM,UA6ClB"} \ No newline at end of file diff --git a/dist/teste.js b/dist/teste.js index 501c537..90f9785 100644 --- a/dist/teste.js +++ b/dist/teste.js @@ -1,5 +1,12 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const logger_1 = require("./logger"); -logger_1.logger.error("Esse é um erro", { app: "teste", eProducao: true }); +const { error, info } = (0, logger_1.logger)({ + inquilino: "conta_1", + app: "teste", + eProducao: true, + usuario: "pedrinho", +}); +error("Deu Ruim"); +info("Deu Bom", { __filename }); //# sourceMappingURL=teste.js.map \ No newline at end of file diff --git a/dist/teste.js.map b/dist/teste.js.map index d623c38..49fb983 100644 --- a/dist/teste.js.map +++ b/dist/teste.js.map @@ -1 +1 @@ -{"version":3,"file":"teste.js","sourceRoot":"","sources":["../src/teste.ts"],"names":[],"mappings":";;AAAA,qCAAiC;AAEjC,eAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"teste.js","sourceRoot":"","sources":["../src/teste.ts"],"names":[],"mappings":";;AAAA,qCAAiC;AAEjC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAA,eAAM,EAAC;IAC7B,SAAS,EAAE,SAAS;IACpB,GAAG,EAAE,OAAO;IACZ,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,UAAU;CACpB,CAAC,CAAA;AAEF,KAAK,CAAC,UAAU,CAAC,CAAA;AACjB,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA"} \ No newline at end of file diff --git a/package.json b/package.json index 90751a3..1b51b45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "p-comuns", - "version": "0.75.0", + "version": "0.76.0", "description": "", "main": "dist/index.js", "scripts": { diff --git a/src/logger.ts b/src/logger.ts index 13741cc..d5f48fa 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -3,45 +3,41 @@ import crossFetch from "cross-fetch" const LOKI_BASE_URL = "https://log.idz.one" const LOKI_ENDPOINT = "/loki/api/v1/push" -type LogLevel = "info" | "warn" | "error" +type tipoLevel = "info" | "warn" | "error" -interface LogOptions { - app?: string - conta?: string - usuario?: string - detalhes?: unknown[] +type tipoAmb = { + app: string + inquilino: string + usuario: string eProducao: boolean } -interface LokiStream { - stream: { - app?: string - conta?: string - usuario?: string - level: LogLevel - } - values: Array<[string, string]> +type tipoLog = { + detalhes?: unknown[] + __filename?: string } -const createLogger = (level: LogLevel) => { - const sendToLoki = async (mensagem: string, options: LogOptions) => { - if (!options.eProducao) { - console.log(level, mensagem, options) - return - } +export const logger = ({ inquilino, app, eProducao, usuario }: tipoAmb) => { + const f = + (level: tipoLevel) => async (mensagem: string, op_tipoLog?: tipoLog) => { + let { __filename, detalhes } = op_tipoLog || {} - const { app, conta, usuario, detalhes = [] } = options - const timestamp = `${Date.now()}000000` + if (!eProducao) { + app = `DEV-${app}` + } - try { - // Formata a linha de log principal - const mainLog = - detalhes.length > 0 - ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" ")}` - : mensagem + if (__filename && typeof process != "undefined" && process.cwd()) { + __filename = __filename.replace(process.cwd(), "") + } - const payload: LokiStream = { - stream: { app, conta, usuario, level }, + const timestamp = `${Date.now()}000000` + + const mainLog = detalhes?.length + ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" ")}` + : mensagem + + const payload = { + stream: { app, inquilino, usuario, level }, values: [ [ timestamp, @@ -59,19 +55,11 @@ const createLogger = (level: LogLevel) => { if (!response.ok) { throw new Error(`Erro ${response.status}: ${await response.text()}`) } - } catch (error) { - console.error("[Logger] Falha no envio:", error) } + + return { + info: f("info"), + warn: f("warn"), + error: f("error"), } - - return sendToLoki -} - -export const logger = { - /** 🟢 Informação geral */ - info: createLogger("info"), - /** 🟡 Aviso/atenção necessária */ - warn: createLogger("warn"), - /** 🔴 Erro crítico na execução */ - error: createLogger("error"), } diff --git a/src/teste.ts b/src/teste.ts index d707e81..2887ac0 100644 --- a/src/teste.ts +++ b/src/teste.ts @@ -1,3 +1,11 @@ import { logger } from "./logger" -logger.error("Esse é um erro", { app: "teste", eProducao: true }) +const { error, info } = logger({ + inquilino: "conta_1", + app: "teste", + eProducao: true, + usuario: "pedrinho", +}) + +error("Deu Ruim") +info("Deu Bom", { __filename })