.
This commit is contained in:
parent
92ffd22f79
commit
658a8abaeb
8 changed files with 96 additions and 100 deletions
26
dist/logger.d.ts
vendored
26
dist/logger.d.ts
vendored
|
|
@ -1,16 +1,16 @@
|
||||||
interface LogOptions {
|
type tipoAmb = {
|
||||||
app?: string;
|
app: string;
|
||||||
conta?: string;
|
inquilino: string;
|
||||||
usuario?: string;
|
usuario: string;
|
||||||
detalhes?: unknown[];
|
|
||||||
eProducao: boolean;
|
eProducao: boolean;
|
||||||
}
|
};
|
||||||
export declare const logger: {
|
type tipoLog = {
|
||||||
/** 🟢 Informação geral */
|
detalhes?: unknown[];
|
||||||
info: (mensagem: string, options: LogOptions) => Promise<void>;
|
__filename?: string;
|
||||||
/** 🟡 Aviso/atenção necessária */
|
};
|
||||||
warn: (mensagem: string, options: LogOptions) => Promise<void>;
|
export declare const logger: ({ inquilino, app, eProducao, usuario }: tipoAmb) => {
|
||||||
/** 🔴 Erro crítico na execução */
|
info: (mensagem: string, op_tipoLog?: tipoLog) => Promise<void>;
|
||||||
error: (mensagem: string, options: LogOptions) => Promise<void>;
|
warn: (mensagem: string, op_tipoLog?: tipoLog) => Promise<void>;
|
||||||
|
error: (mensagem: string, op_tipoLog?: tipoLog) => Promise<void>;
|
||||||
};
|
};
|
||||||
export {};
|
export {};
|
||||||
|
|
|
||||||
37
dist/logger.js
vendored
37
dist/logger.js
vendored
|
|
@ -7,21 +7,21 @@ exports.logger = void 0;
|
||||||
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
||||||
const LOKI_BASE_URL = "https://log.idz.one";
|
const LOKI_BASE_URL = "https://log.idz.one";
|
||||||
const LOKI_ENDPOINT = "/loki/api/v1/push";
|
const LOKI_ENDPOINT = "/loki/api/v1/push";
|
||||||
const createLogger = (level) => {
|
const logger = ({ inquilino, app, eProducao, usuario }) => {
|
||||||
const sendToLoki = async (mensagem, options) => {
|
const f = (level) => async (mensagem, op_tipoLog) => {
|
||||||
if (!options.eProducao) {
|
let { __filename, detalhes } = op_tipoLog || {};
|
||||||
console.log(level, mensagem, options);
|
if (!eProducao) {
|
||||||
return;
|
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`;
|
const timestamp = `${Date.now()}000000`;
|
||||||
try {
|
const mainLog = detalhes?.length
|
||||||
// Formata a linha de log principal
|
|
||||||
const mainLog = detalhes.length > 0
|
|
||||||
? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" ")}`
|
? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" ")}`
|
||||||
: mensagem;
|
: mensagem;
|
||||||
const payload = {
|
const payload = {
|
||||||
stream: { app, conta, usuario, level },
|
stream: { app, inquilino, usuario, level },
|
||||||
values: [
|
values: [
|
||||||
[
|
[
|
||||||
timestamp,
|
timestamp,
|
||||||
|
|
@ -37,19 +37,12 @@ const createLogger = (level) => {
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error(`Erro ${response.status}: ${await response.text()}`);
|
throw new Error(`Erro ${response.status}: ${await response.text()}`);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (error) {
|
|
||||||
console.error("[Logger] Falha no envio:", error);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
return sendToLoki;
|
return {
|
||||||
|
info: f("info"),
|
||||||
|
warn: f("warn"),
|
||||||
|
error: f("error"),
|
||||||
};
|
};
|
||||||
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"),
|
|
||||||
};
|
};
|
||||||
|
exports.logger = logger;
|
||||||
//# sourceMappingURL=logger.js.map
|
//# sourceMappingURL=logger.js.map
|
||||||
2
dist/logger.js.map
vendored
2
dist/logger.js.map
vendored
|
|
@ -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"}
|
{"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"}
|
||||||
9
dist/teste.js
vendored
9
dist/teste.js
vendored
|
|
@ -1,5 +1,12 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const logger_1 = require("./logger");
|
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
|
//# sourceMappingURL=teste.js.map
|
||||||
2
dist/teste.js.map
vendored
2
dist/teste.js.map
vendored
|
|
@ -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"}
|
{"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"}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "p-comuns",
|
"name": "p-comuns",
|
||||||
"version": "0.75.0",
|
"version": "0.76.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -3,45 +3,41 @@ import crossFetch from "cross-fetch"
|
||||||
const LOKI_BASE_URL = "https://log.idz.one"
|
const LOKI_BASE_URL = "https://log.idz.one"
|
||||||
const LOKI_ENDPOINT = "/loki/api/v1/push"
|
const LOKI_ENDPOINT = "/loki/api/v1/push"
|
||||||
|
|
||||||
type LogLevel = "info" | "warn" | "error"
|
type tipoLevel = "info" | "warn" | "error"
|
||||||
|
|
||||||
interface LogOptions {
|
type tipoAmb = {
|
||||||
app?: string
|
app: string
|
||||||
conta?: string
|
inquilino: string
|
||||||
usuario?: string
|
usuario: string
|
||||||
detalhes?: unknown[]
|
|
||||||
eProducao: boolean
|
eProducao: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
interface LokiStream {
|
type tipoLog = {
|
||||||
stream: {
|
detalhes?: unknown[]
|
||||||
app?: string
|
__filename?: string
|
||||||
conta?: string
|
|
||||||
usuario?: string
|
|
||||||
level: LogLevel
|
|
||||||
}
|
|
||||||
values: Array<[string, string]>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const createLogger = (level: LogLevel) => {
|
export const logger = ({ inquilino, app, eProducao, usuario }: tipoAmb) => {
|
||||||
const sendToLoki = async (mensagem: string, options: LogOptions) => {
|
const f =
|
||||||
if (!options.eProducao) {
|
(level: tipoLevel) => async (mensagem: string, op_tipoLog?: tipoLog) => {
|
||||||
console.log(level, mensagem, options)
|
let { __filename, detalhes } = op_tipoLog || {}
|
||||||
return
|
|
||||||
|
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`
|
const timestamp = `${Date.now()}000000`
|
||||||
|
|
||||||
try {
|
const mainLog = detalhes?.length
|
||||||
// Formata a linha de log principal
|
|
||||||
const mainLog =
|
|
||||||
detalhes.length > 0
|
|
||||||
? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" ")}`
|
? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" ")}`
|
||||||
: mensagem
|
: mensagem
|
||||||
|
|
||||||
const payload: LokiStream = {
|
const payload = {
|
||||||
stream: { app, conta, usuario, level },
|
stream: { app, inquilino, usuario, level },
|
||||||
values: [
|
values: [
|
||||||
[
|
[
|
||||||
timestamp,
|
timestamp,
|
||||||
|
|
@ -59,19 +55,11 @@ const createLogger = (level: LogLevel) => {
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error(`Erro ${response.status}: ${await response.text()}`)
|
throw new Error(`Erro ${response.status}: ${await response.text()}`)
|
||||||
}
|
}
|
||||||
} catch (error) {
|
|
||||||
console.error("[Logger] Falha no envio:", error)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return sendToLoki
|
return {
|
||||||
|
info: f("info"),
|
||||||
|
warn: f("warn"),
|
||||||
|
error: f("error"),
|
||||||
}
|
}
|
||||||
|
|
||||||
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"),
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
10
src/teste.ts
10
src/teste.ts
|
|
@ -1,3 +1,11 @@
|
||||||
import { logger } from "./logger"
|
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 })
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue