logan-logger 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-BzeNXjes.js +1 -0
- package/dist/browser-C6UkWymL.mjs +293 -0
- package/dist/browser.d.ts +12 -16
- package/dist/browser.esm.js +80 -17
- package/dist/browser.js +1 -1
- package/dist/bun.esm.js +17 -16
- package/dist/bun.js +1 -1
- package/dist/deno.esm.js +21 -51
- package/dist/deno.js +1 -1
- package/dist/formatting-BDuKuXIh.js +1 -0
- package/dist/formatting-BZyid6rr.mjs +36 -0
- package/dist/index.esm.js +26 -25
- package/dist/index.js +1 -1
- package/dist/node-BO4IXArm.js +1 -0
- package/dist/node-cR0agAz0.mjs +336 -0
- package/dist/node.esm.js +1 -1
- package/dist/node.js +1 -1
- package/package.json +1 -1
- package/dist/node-BKsollr4.js +0 -1
- package/dist/node-BqvVrzA_.mjs +0 -626
package/dist/index.esm.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { c as a } from "./
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { g as i, B as f, C as L, L as l, P as m, d as c, f as d, a as v, c as p, b as u, i as C, s as B, e as F } from "./browser-C6UkWymL.mjs";
|
|
2
|
+
import { a } from "./node-cR0agAz0.mjs";
|
|
3
|
+
import { L as w, c as x, g as E, l as y, b as D, d as S, m as P, s as T } from "./node-cR0agAz0.mjs";
|
|
4
|
+
import { a as G, f as N } from "./formatting-BZyid6rr.mjs";
|
|
4
5
|
const r = a(), g = {
|
|
5
6
|
debug: (e, o) => r.debug(e, o),
|
|
6
7
|
info: (e, o) => r.info(e, o),
|
|
@@ -8,30 +9,30 @@ const r = a(), g = {
|
|
|
8
9
|
error: (e, o) => r.error(e, o)
|
|
9
10
|
};
|
|
10
11
|
export {
|
|
11
|
-
|
|
12
|
+
i as BaseLogger,
|
|
12
13
|
f as BrowserLogger,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
L as ConsoleGroupLogger,
|
|
15
|
+
l as LogLevel,
|
|
16
|
+
w as LoggerFactory,
|
|
17
|
+
m as PerformanceLogger,
|
|
18
|
+
x as createLogger,
|
|
18
19
|
a as createLoggerForEnvironment,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
c as detectRuntime,
|
|
21
|
+
d as filterSensitiveData,
|
|
22
|
+
G as formatLevel,
|
|
23
|
+
N as formatLogEntry,
|
|
24
|
+
E as getDefaultConfig,
|
|
25
|
+
v as isBrowser,
|
|
26
|
+
p as isBun,
|
|
27
|
+
u as isDeno,
|
|
28
|
+
C as isNode,
|
|
29
|
+
y as loadConfigFromEnvironment,
|
|
30
|
+
D as loadConfigFromFile,
|
|
30
31
|
g as log,
|
|
31
|
-
|
|
32
|
+
S as logLevelToString,
|
|
32
33
|
r as logger,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
P as mergeConfigs,
|
|
35
|
+
B as safeStringify,
|
|
36
|
+
F as serializeError,
|
|
37
|
+
T as stringToLogLevel
|
|
37
38
|
};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./node-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./browser-BzeNXjes.js"),o=require("./node-BO4IXArm.js"),t=require("./formatting-BDuKuXIh.js"),n=o.createLoggerForEnvironment(),i={debug:(r,g)=>n.debug(r,g),info:(r,g)=>n.info(r,g),warn:(r,g)=>n.warn(r,g),error:(r,g)=>n.error(r,g)};exports.BaseLogger=e.BaseLogger;exports.BrowserLogger=e.BrowserLogger;exports.ConsoleGroupLogger=e.ConsoleGroupLogger;exports.LogLevel=e.LogLevel;exports.PerformanceLogger=e.PerformanceLogger;exports.detectRuntime=e.detectRuntime;exports.filterSensitiveData=e.filterSensitiveData;exports.isBrowser=e.isBrowser;exports.isBun=e.isBun;exports.isDeno=e.isDeno;exports.isNode=e.isNode;exports.safeStringify=e.safeStringify;exports.serializeError=e.serializeError;exports.LoggerFactory=o.LoggerFactory;exports.createLogger=o.createLogger;exports.createLoggerForEnvironment=o.createLoggerForEnvironment;exports.getDefaultConfig=o.getDefaultConfig;exports.loadConfigFromEnvironment=o.loadConfigFromEnvironment;exports.loadConfigFromFile=o.loadConfigFromFile;exports.logLevelToString=o.logLevelToString;exports.mergeConfigs=o.mergeConfigs;exports.stringToLogLevel=o.stringToLogLevel;exports.formatLevel=t.formatLevel;exports.formatLogEntry=t.formatLogEntry;exports.log=i;exports.logger=n;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var p=Object.create;var g=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var h=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of O(e))!N.call(t,s)&&s!==o&&g(t,s,{get:()=>e[s],enumerable:!(n=w(e,s))||n.enumerable});return t};var R=(t,e,o)=>(o=t!=null?p(E(t)):{},h(e||!t||!t.__esModule?g(o,"default",{value:t,enumerable:!0}):o,t));const r=require("./browser-BzeNXjes.js");class i extends r.BaseLogger{constructor(e={}){super(e),this.initializeWinston()}async initializeWinston(){try{const e=await import("winston");this.winston=this.createWinstonLogger(e)}catch{console.warn("[logan-logger] Winston not found, falling back to console logging")}}createWinstonLogger(e){const o=e.format.combine(e.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),e.format.errors({stack:!0}),e.format.json(),e.format.prettyPrint()),n=e.format.combine(e.format.colorize(),e.format.timestamp({format:"HH:mm:ss"}),e.format.printf(({timestamp:a,level:m,message:d,...l})=>{const v=Object.keys(l).length?JSON.stringify(l,null,2):"";return`${a} [${m}]: ${d} ${v}`})),s=e.createLogger({level:this.getWinstonLevel(this.level),format:o,transports:[new e.transports.Console({format:process.env.NODE_ENV==="production"?o:n})]});return process.env.NODE_ENV==="production"&&(s.add(new e.transports.File({filename:"logs/error.log",level:"error",maxsize:5242880,maxFiles:5})),s.add(new e.transports.File({filename:"logs/combined.log",maxsize:5242880,maxFiles:10}))),s}writeLog(e){this.winston?this.winston.log({level:this.getWinstonLevel(e.level),message:e.message,timestamp:e.timestamp,...e.metadata}):this.writeToConsole(e)}createChild(){return new i(this.config)}writeToConsole(e){const o=e.timestamp.toISOString(),n=r.LogLevel[e.level].toLowerCase(),s=e.metadata?` ${r.safeStringify(e.metadata)}`:"",a=`[${o}] ${n.toUpperCase()}: ${e.message}${s}`;switch(e.level){case r.LogLevel.DEBUG:console.debug(a);break;case r.LogLevel.INFO:console.info(a);break;case r.LogLevel.WARN:console.warn(a);break;case r.LogLevel.ERROR:console.error(a);break}}getWinstonLevel(e){switch(e){case r.LogLevel.DEBUG:return"debug";case r.LogLevel.INFO:return"info";case r.LogLevel.WARN:return"warn";case r.LogLevel.ERROR:return"error";default:return"info"}}setLevel(e){super.setLevel(e),this.winston&&(this.winston.level=this.getWinstonLevel(e))}}function F(t){return{write:e=>{t.info(e.trim())}}}function c(){const t=r.detectRuntime();return{level:r.LogLevel.INFO,format:"text",timestamp:!0,colorize:t.capabilities.colorSupport,metadata:{},transports:[{type:"console",options:{}}]}}function C(){const t={};if(typeof process<"u"&&process.env){const e=process.env;e.LOG_LEVEL&&(t.level=W(e.LOG_LEVEL)),e.LOG_FORMAT&&["json","text"].includes(e.LOG_FORMAT)&&(t.format=e.LOG_FORMAT),e.LOG_TIMESTAMP&&(t.timestamp=e.LOG_TIMESTAMP.toLowerCase()==="true"),e.LOG_COLOR&&(t.colorize=e.LOG_COLOR.toLowerCase()==="true")}return t}async function b(t){const e=r.detectRuntime();if(!e.capabilities.fileSystem)return{};const o=t?[t]:["logan.config.json","logan.config.js",".loganrc","package.json"];for(const n of o)try{if(e.name==="node")return await u(n);if(e.name==="deno")return await T(n);if(e.name==="bun")return await S(n)}catch{}return{}}async function u(t){try{const e=await Promise.resolve().then(()=>require("./__vite-browser-external-BcPniuRQ.js")),o=await Promise.resolve().then(()=>require("./__vite-browser-external-BcPniuRQ.js"));if(t.endsWith(".json")){const n=await e.readFile(t,"utf-8"),s=JSON.parse(n);return t==="package.json"?s.logan||{}:s}else if(t.endsWith(".js")){const n=o.resolve(t);delete require.cache[n];const s=require(n);return s.default||s}}catch{}return{}}async function T(t){try{if(t.endsWith(".json")){const e=await globalThis.Deno.readTextFile(t),o=JSON.parse(e);return t==="package.json"?o.logan||{}:o}else if(t.endsWith(".js")){const e=await import(`./${t}`);return e.default||e}}catch{}return{}}async function S(t){return u(t)}function W(t){switch(t.toLowerCase()){case"debug":return r.LogLevel.DEBUG;case"info":return r.LogLevel.INFO;case"warn":case"warning":return r.LogLevel.WARN;case"error":return r.LogLevel.ERROR;case"silent":case"none":return r.LogLevel.SILENT;default:return r.LogLevel.INFO}}function _(...t){const e=c();return t.reduce((o,n)=>({...o,...n,metadata:{...o.metadata,...n.metadata},transports:n.transports||o.transports}),e)}class L{static create(e={}){const o=r.detectRuntime(),n=this.mergeConfig(e);switch(o.name){case"node":return new i(n);case"deno":return new r.BrowserLogger(n);case"bun":return new i(n);case"browser":case"webworker":return new r.BrowserLogger(n);default:return new r.BrowserLogger(n)}}static createChild(e,o){return e.child(o)}static mergeConfig(e){const o=c();return{...o,...e,metadata:{...o.metadata,...e.metadata}}}}function f(t){return L.create(t)}function I(){const t=D(),e={level:G(t),colorize:t!=="production",timestamp:!0,format:t==="production"?"json":"text"};return f(e)}function D(){return typeof process<"u"&&process.env?process.env.NODE_ENV||process.env.NEXT_PUBLIC_APP_ENV||process.env.ENVIRONMENT||"development":typeof window<"u"&&globalThis.__ENV__||"development"}function G(t){switch(t){case"production":return r.LogLevel.ERROR;case"staging":case"test":return r.LogLevel.WARN;case"development":case"dev":return r.LogLevel.DEBUG;default:return r.LogLevel.INFO}}function j(t){switch(t.toLowerCase()){case"debug":return r.LogLevel.DEBUG;case"info":return r.LogLevel.INFO;case"warn":case"warning":return r.LogLevel.WARN;case"error":return r.LogLevel.ERROR;case"silent":case"none":return r.LogLevel.SILENT;default:return r.LogLevel.INFO}}function M(t){switch(t){case r.LogLevel.DEBUG:return"debug";case r.LogLevel.INFO:return"info";case r.LogLevel.WARN:return"warn";case r.LogLevel.ERROR:return"error";case r.LogLevel.SILENT:return"silent";default:return"info"}}exports.LoggerFactory=L;exports.NodeLogger=i;exports.createLogger=f;exports.createLoggerForEnvironment=I;exports.createMorganStream=F;exports.getDefaultConfig=c;exports.loadConfigFromEnvironment=C;exports.loadConfigFromFile=b;exports.logLevelToString=M;exports.mergeConfigs=_;exports.stringToLogLevel=j;
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { g as L, L as r, s as v, d as l, B as c } from "./browser-C6UkWymL.mjs";
|
|
2
|
+
class i extends L {
|
|
3
|
+
constructor(e = {}) {
|
|
4
|
+
super(e), this.initializeWinston();
|
|
5
|
+
}
|
|
6
|
+
async initializeWinston() {
|
|
7
|
+
try {
|
|
8
|
+
const e = await import("winston");
|
|
9
|
+
this.winston = this.createWinstonLogger(e);
|
|
10
|
+
} catch {
|
|
11
|
+
console.warn("[logan-logger] Winston not found, falling back to console logging");
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
createWinstonLogger(e) {
|
|
15
|
+
const n = e.format.combine(
|
|
16
|
+
e.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
|
|
17
|
+
e.format.errors({ stack: !0 }),
|
|
18
|
+
e.format.json(),
|
|
19
|
+
e.format.prettyPrint()
|
|
20
|
+
), o = e.format.combine(
|
|
21
|
+
e.format.colorize(),
|
|
22
|
+
e.format.timestamp({ format: "HH:mm:ss" }),
|
|
23
|
+
e.format.printf(({ timestamp: a, level: m, message: d, ...u }) => {
|
|
24
|
+
const p = Object.keys(u).length ? JSON.stringify(u, null, 2) : "";
|
|
25
|
+
return `${a} [${m}]: ${d} ${p}`;
|
|
26
|
+
})
|
|
27
|
+
), s = e.createLogger({
|
|
28
|
+
level: this.getWinstonLevel(this.level),
|
|
29
|
+
format: n,
|
|
30
|
+
transports: [
|
|
31
|
+
new e.transports.Console({
|
|
32
|
+
format: process.env.NODE_ENV === "production" ? n : o
|
|
33
|
+
})
|
|
34
|
+
]
|
|
35
|
+
});
|
|
36
|
+
return process.env.NODE_ENV === "production" && (s.add(
|
|
37
|
+
new e.transports.File({
|
|
38
|
+
filename: "logs/error.log",
|
|
39
|
+
level: "error",
|
|
40
|
+
maxsize: 5242880,
|
|
41
|
+
// 5MB
|
|
42
|
+
maxFiles: 5
|
|
43
|
+
})
|
|
44
|
+
), s.add(
|
|
45
|
+
new e.transports.File({
|
|
46
|
+
filename: "logs/combined.log",
|
|
47
|
+
maxsize: 5242880,
|
|
48
|
+
// 5MB
|
|
49
|
+
maxFiles: 10
|
|
50
|
+
})
|
|
51
|
+
)), s;
|
|
52
|
+
}
|
|
53
|
+
writeLog(e) {
|
|
54
|
+
this.winston ? this.winston.log({
|
|
55
|
+
level: this.getWinstonLevel(e.level),
|
|
56
|
+
message: e.message,
|
|
57
|
+
timestamp: e.timestamp,
|
|
58
|
+
...e.metadata
|
|
59
|
+
}) : this.writeToConsole(e);
|
|
60
|
+
}
|
|
61
|
+
createChild() {
|
|
62
|
+
return new i(this.config);
|
|
63
|
+
}
|
|
64
|
+
writeToConsole(e) {
|
|
65
|
+
const n = e.timestamp.toISOString(), o = r[e.level].toLowerCase(), s = e.metadata ? ` ${v(e.metadata)}` : "", a = `[${n}] ${o.toUpperCase()}: ${e.message}${s}`;
|
|
66
|
+
switch (e.level) {
|
|
67
|
+
case r.DEBUG:
|
|
68
|
+
console.debug(a);
|
|
69
|
+
break;
|
|
70
|
+
case r.INFO:
|
|
71
|
+
console.info(a);
|
|
72
|
+
break;
|
|
73
|
+
case r.WARN:
|
|
74
|
+
console.warn(a);
|
|
75
|
+
break;
|
|
76
|
+
case r.ERROR:
|
|
77
|
+
console.error(a);
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
getWinstonLevel(e) {
|
|
82
|
+
switch (e) {
|
|
83
|
+
case r.DEBUG:
|
|
84
|
+
return "debug";
|
|
85
|
+
case r.INFO:
|
|
86
|
+
return "info";
|
|
87
|
+
case r.WARN:
|
|
88
|
+
return "warn";
|
|
89
|
+
case r.ERROR:
|
|
90
|
+
return "error";
|
|
91
|
+
default:
|
|
92
|
+
return "info";
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
setLevel(e) {
|
|
96
|
+
super.setLevel(e), this.winston && (this.winston.level = this.getWinstonLevel(e));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function b(t) {
|
|
100
|
+
return {
|
|
101
|
+
write: (e) => {
|
|
102
|
+
t.info(e.trim());
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function f() {
|
|
107
|
+
const t = l();
|
|
108
|
+
return {
|
|
109
|
+
level: r.INFO,
|
|
110
|
+
format: "text",
|
|
111
|
+
timestamp: !0,
|
|
112
|
+
colorize: t.capabilities.colorSupport,
|
|
113
|
+
metadata: {},
|
|
114
|
+
transports: [
|
|
115
|
+
{
|
|
116
|
+
type: "console",
|
|
117
|
+
options: {}
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function T() {
|
|
123
|
+
const t = {};
|
|
124
|
+
if (typeof process < "u" && process.env) {
|
|
125
|
+
const e = process.env;
|
|
126
|
+
e.LOG_LEVEL && (t.level = E(e.LOG_LEVEL)), e.LOG_FORMAT && ["json", "text"].includes(e.LOG_FORMAT) && (t.format = e.LOG_FORMAT), e.LOG_TIMESTAMP && (t.timestamp = e.LOG_TIMESTAMP.toLowerCase() === "true"), e.LOG_COLOR && (t.colorize = e.LOG_COLOR.toLowerCase() === "true");
|
|
127
|
+
}
|
|
128
|
+
return t;
|
|
129
|
+
}
|
|
130
|
+
async function W(t) {
|
|
131
|
+
const e = l();
|
|
132
|
+
if (!e.capabilities.fileSystem)
|
|
133
|
+
return {};
|
|
134
|
+
const n = t ? [t] : [
|
|
135
|
+
"logan.config.json",
|
|
136
|
+
"logan.config.js",
|
|
137
|
+
".loganrc",
|
|
138
|
+
"package.json"
|
|
139
|
+
// Check for logan config in package.json
|
|
140
|
+
];
|
|
141
|
+
for (const o of n)
|
|
142
|
+
try {
|
|
143
|
+
if (e.name === "node")
|
|
144
|
+
return await g(o);
|
|
145
|
+
if (e.name === "deno")
|
|
146
|
+
return await w(o);
|
|
147
|
+
if (e.name === "bun")
|
|
148
|
+
return await O(o);
|
|
149
|
+
} catch {
|
|
150
|
+
}
|
|
151
|
+
return {};
|
|
152
|
+
}
|
|
153
|
+
async function g(t) {
|
|
154
|
+
try {
|
|
155
|
+
const e = await import("./__vite-browser-external-DYxpcVy9.mjs"), n = await import("./__vite-browser-external-DYxpcVy9.mjs");
|
|
156
|
+
if (t.endsWith(".json")) {
|
|
157
|
+
const o = await e.readFile(t, "utf-8"), s = JSON.parse(o);
|
|
158
|
+
return t === "package.json" ? s.logan || {} : s;
|
|
159
|
+
} else if (t.endsWith(".js")) {
|
|
160
|
+
const o = n.resolve(t);
|
|
161
|
+
delete require.cache[o];
|
|
162
|
+
const s = require(o);
|
|
163
|
+
return s.default || s;
|
|
164
|
+
}
|
|
165
|
+
} catch {
|
|
166
|
+
}
|
|
167
|
+
return {};
|
|
168
|
+
}
|
|
169
|
+
async function w(t) {
|
|
170
|
+
try {
|
|
171
|
+
if (t.endsWith(".json")) {
|
|
172
|
+
const e = await globalThis.Deno.readTextFile(t), n = JSON.parse(e);
|
|
173
|
+
return t === "package.json" ? n.logan || {} : n;
|
|
174
|
+
} else if (t.endsWith(".js")) {
|
|
175
|
+
const e = await import(
|
|
176
|
+
/* @vite-ignore */
|
|
177
|
+
`./${t}`
|
|
178
|
+
);
|
|
179
|
+
return e.default || e;
|
|
180
|
+
}
|
|
181
|
+
} catch {
|
|
182
|
+
}
|
|
183
|
+
return {};
|
|
184
|
+
}
|
|
185
|
+
async function O(t) {
|
|
186
|
+
return g(t);
|
|
187
|
+
}
|
|
188
|
+
function E(t) {
|
|
189
|
+
switch (t.toLowerCase()) {
|
|
190
|
+
case "debug":
|
|
191
|
+
return r.DEBUG;
|
|
192
|
+
case "info":
|
|
193
|
+
return r.INFO;
|
|
194
|
+
case "warn":
|
|
195
|
+
case "warning":
|
|
196
|
+
return r.WARN;
|
|
197
|
+
case "error":
|
|
198
|
+
return r.ERROR;
|
|
199
|
+
case "silent":
|
|
200
|
+
case "none":
|
|
201
|
+
return r.SILENT;
|
|
202
|
+
default:
|
|
203
|
+
return r.INFO;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
function _(...t) {
|
|
207
|
+
const e = f();
|
|
208
|
+
return t.reduce((n, o) => ({
|
|
209
|
+
...n,
|
|
210
|
+
...o,
|
|
211
|
+
metadata: {
|
|
212
|
+
...n.metadata,
|
|
213
|
+
...o.metadata
|
|
214
|
+
},
|
|
215
|
+
transports: o.transports || n.transports
|
|
216
|
+
}), e);
|
|
217
|
+
}
|
|
218
|
+
class N {
|
|
219
|
+
/**
|
|
220
|
+
* Create a logger instance appropriate for the current runtime.
|
|
221
|
+
* @param config - Optional configuration for the logger
|
|
222
|
+
* @returns A logger instance
|
|
223
|
+
*/
|
|
224
|
+
static create(e = {}) {
|
|
225
|
+
const n = l(), o = this.mergeConfig(e);
|
|
226
|
+
switch (n.name) {
|
|
227
|
+
case "node":
|
|
228
|
+
return new i(o);
|
|
229
|
+
case "deno":
|
|
230
|
+
return new c(o);
|
|
231
|
+
case "bun":
|
|
232
|
+
return new i(o);
|
|
233
|
+
case "browser":
|
|
234
|
+
case "webworker":
|
|
235
|
+
return new c(o);
|
|
236
|
+
default:
|
|
237
|
+
return new c(o);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Create a child logger with additional metadata.
|
|
242
|
+
* @param parent - The parent logger instance
|
|
243
|
+
* @param metadata - Additional metadata to include in all child log messages
|
|
244
|
+
* @returns A new logger instance with the additional metadata
|
|
245
|
+
*/
|
|
246
|
+
static createChild(e, n) {
|
|
247
|
+
return e.child(n);
|
|
248
|
+
}
|
|
249
|
+
static mergeConfig(e) {
|
|
250
|
+
const n = f();
|
|
251
|
+
return {
|
|
252
|
+
...n,
|
|
253
|
+
...e,
|
|
254
|
+
metadata: {
|
|
255
|
+
...n.metadata,
|
|
256
|
+
...e.metadata
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
function h(t) {
|
|
262
|
+
return N.create(t);
|
|
263
|
+
}
|
|
264
|
+
function I() {
|
|
265
|
+
const t = R(), e = {
|
|
266
|
+
level: F(t),
|
|
267
|
+
colorize: t !== "production",
|
|
268
|
+
timestamp: !0,
|
|
269
|
+
format: t === "production" ? "json" : "text"
|
|
270
|
+
};
|
|
271
|
+
return h(e);
|
|
272
|
+
}
|
|
273
|
+
function R() {
|
|
274
|
+
return typeof process < "u" && process.env ? process.env.NODE_ENV || process.env.NEXT_PUBLIC_APP_ENV || process.env.ENVIRONMENT || "development" : typeof window < "u" && globalThis.__ENV__ || "development";
|
|
275
|
+
}
|
|
276
|
+
function F(t) {
|
|
277
|
+
switch (t) {
|
|
278
|
+
case "production":
|
|
279
|
+
return r.ERROR;
|
|
280
|
+
case "staging":
|
|
281
|
+
case "test":
|
|
282
|
+
return r.WARN;
|
|
283
|
+
case "development":
|
|
284
|
+
case "dev":
|
|
285
|
+
return r.DEBUG;
|
|
286
|
+
default:
|
|
287
|
+
return r.INFO;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
function S(t) {
|
|
291
|
+
switch (t.toLowerCase()) {
|
|
292
|
+
case "debug":
|
|
293
|
+
return r.DEBUG;
|
|
294
|
+
case "info":
|
|
295
|
+
return r.INFO;
|
|
296
|
+
case "warn":
|
|
297
|
+
case "warning":
|
|
298
|
+
return r.WARN;
|
|
299
|
+
case "error":
|
|
300
|
+
return r.ERROR;
|
|
301
|
+
case "silent":
|
|
302
|
+
case "none":
|
|
303
|
+
return r.SILENT;
|
|
304
|
+
default:
|
|
305
|
+
return r.INFO;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
function G(t) {
|
|
309
|
+
switch (t) {
|
|
310
|
+
case r.DEBUG:
|
|
311
|
+
return "debug";
|
|
312
|
+
case r.INFO:
|
|
313
|
+
return "info";
|
|
314
|
+
case r.WARN:
|
|
315
|
+
return "warn";
|
|
316
|
+
case r.ERROR:
|
|
317
|
+
return "error";
|
|
318
|
+
case r.SILENT:
|
|
319
|
+
return "silent";
|
|
320
|
+
default:
|
|
321
|
+
return "info";
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
export {
|
|
325
|
+
N as L,
|
|
326
|
+
i as N,
|
|
327
|
+
I as a,
|
|
328
|
+
W as b,
|
|
329
|
+
h as c,
|
|
330
|
+
G as d,
|
|
331
|
+
b as e,
|
|
332
|
+
f as g,
|
|
333
|
+
T as l,
|
|
334
|
+
_ as m,
|
|
335
|
+
S as s
|
|
336
|
+
};
|
package/dist/node.esm.js
CHANGED
package/dist/node.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./node-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./node-BO4IXArm.js");exports.NodeLogger=e.NodeLogger;exports.createLogger=e.createLogger;exports.createLoggerForEnvironment=e.createLoggerForEnvironment;exports.createMorganStream=e.createMorganStream;
|
package/package.json
CHANGED
package/dist/node-BKsollr4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var N=Object.create;var h=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var k=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of S(e))!C.call(t,n)&&n!==r&&h(t,n,{get:()=>e[n],enumerable:!(s=v(e,n))||s.enumerable});return t};var F=(t,e,r)=>(r=t!=null?N(y(t)):{},k(e||!t||!t.__esModule?h(r,"default",{value:t,enumerable:!0}):r,t));var o=(t=>(t[t.DEBUG=0]="DEBUG",t[t.INFO=1]="INFO",t[t.WARN=2]="WARN",t[t.ERROR=3]="ERROR",t[t.SILENT=4]="SILENT",t))(o||{});function l(){const t=f(),e=T(t),r=I(t);return{name:t,version:e,capabilities:r}}function f(){return typeof globalThis.Deno<"u"?"deno":typeof globalThis.Bun<"u"?"bun":typeof window<"u"&&typeof document<"u"?"browser":typeof globalThis.importScripts=="function"&&typeof window>"u"?"webworker":typeof process<"u"&&process.versions&&process.versions.node?"node":"unknown"}function T(t){switch(t){case"node":return typeof process<"u"?process.version:void 0;case"deno":return typeof globalThis.Deno<"u"?globalThis.Deno.version?.deno:void 0;case"bun":return typeof globalThis.Bun<"u"?globalThis.Bun.version:void 0;case"browser":return typeof navigator<"u"?navigator.userAgent:void 0;default:return}}function I(t){switch(t){case"node":return{fileSystem:!0,colorSupport:!0,processInfo:!0,streams:!0};case"deno":return{fileSystem:!0,colorSupport:!0,processInfo:!0,streams:!0};case"bun":return{fileSystem:!0,colorSupport:!0,processInfo:!0,streams:!0};case"browser":return{fileSystem:!1,colorSupport:!0,processInfo:!1,streams:!1};case"webworker":return{fileSystem:!1,colorSupport:!1,processInfo:!1,streams:!1};default:return{fileSystem:!1,colorSupport:!1,processInfo:!1,streams:!1}}}function D(){return f()==="node"}function M(){return f()==="browser"}function B(){return f()==="deno"}function W(){return f()==="bun"}class g{constructor(e={}){this.childMetadata={},this.config=e,this.level=e.level??o.INFO,this.runtime=l().name}debug(e,r){this.log(o.DEBUG,e,r)}info(e,r){this.log(o.INFO,e,r)}warn(e,r){this.log(o.WARN,e,r)}error(e,r){this.log(o.ERROR,e,r)}log(e,r,s){if(!this.shouldLog(e))return;const n=typeof r=="function"?r():r,a={...this.childMetadata,...s},i={timestamp:new Date,level:e,message:n,metadata:Object.keys(a).length>0?a:void 0,runtime:this.runtime};this.writeLog(i)}setLevel(e){this.level=e}getLevel(){return this.level}child(e){const r=this.createChild();return r.childMetadata={...this.childMetadata,...e},r}shouldLog(e){return e>=this.level}}function d(t,e){const r=new WeakSet;return JSON.stringify(t,(s,n)=>{if(typeof n=="object"&&n!==null){if(r.has(n))return"[Circular]";r.add(n)}return n instanceof Error?{name:n.name,message:n.message,stack:n.stack,...Object.getOwnPropertyNames(n).reduce((a,i)=>(i!=="name"&&i!=="message"&&i!=="stack"&&(a[i]=n[i]),a),{})}:typeof n=="function"?`[Function: ${n.name||"anonymous"}]`:n===void 0?"[undefined]":typeof n=="bigint"?`[BigInt: ${n.toString()}]`:typeof n=="symbol"?`[Symbol: ${n.toString()}]`:n},e)}function w(t,e=["password","token","secret","key","auth"]){if(typeof t!="object"||t===null)return t;const r=Array.isArray(t)?[]:{};for(const[s,n]of Object.entries(t))e.some(i=>s.toLowerCase().includes(i.toLowerCase()))?r[s]="[REDACTED]":typeof n=="object"&&n!==null?r[s]=w(n,e):r[s]=n;return r}function G(t){return t instanceof Error?{name:t.name,message:t.message,stack:t.stack,...t}:t}class u extends g{constructor(e={}){super(e),this.initializeWinston()}async initializeWinston(){try{const e=await import("winston");this.winston=this.createWinstonLogger(e)}catch{console.warn("[logan-logger] Winston not found, falling back to console logging")}}createWinstonLogger(e){const r=e.format.combine(e.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),e.format.errors({stack:!0}),e.format.json(),e.format.prettyPrint()),s=e.format.combine(e.format.colorize(),e.format.timestamp({format:"HH:mm:ss"}),e.format.printf(({timestamp:a,level:i,message:b,...p})=>{const L=Object.keys(p).length?JSON.stringify(p,null,2):"";return`${a} [${i}]: ${b} ${L}`})),n=e.createLogger({level:this.getWinstonLevel(this.level),format:r,transports:[new e.transports.Console({format:process.env.NODE_ENV==="production"?r:s})]});return process.env.NODE_ENV==="production"&&(n.add(new e.transports.File({filename:"logs/error.log",level:"error",maxsize:5242880,maxFiles:5})),n.add(new e.transports.File({filename:"logs/combined.log",maxsize:5242880,maxFiles:10}))),n}writeLog(e){this.winston?this.winston.log({level:this.getWinstonLevel(e.level),message:e.message,timestamp:e.timestamp,...e.metadata}):this.writeToConsole(e)}createChild(){return new u(this.config)}writeToConsole(e){const r=e.timestamp.toISOString(),s=o[e.level].toLowerCase(),n=e.metadata?` ${d(e.metadata)}`:"",a=`[${r}] ${s.toUpperCase()}: ${e.message}${n}`;switch(e.level){case o.DEBUG:console.debug(a);break;case o.INFO:console.info(a);break;case o.WARN:console.warn(a);break;case o.ERROR:console.error(a);break}}getWinstonLevel(e){switch(e){case o.DEBUG:return"debug";case o.INFO:return"info";case o.WARN:return"warn";case o.ERROR:return"error";default:return"info"}}setLevel(e){super.setLevel(e),this.winston&&(this.winston.level=this.getWinstonLevel(e))}}function A(t){return{write:e=>{t.info(e.trim())}}}class c extends g{constructor(e={}){super(e)}writeLog(e){const r=this.formatMessage(e),s=this.getConsoleStyle(e.level),n=e.metadata?` ${d(e.metadata)}`:"",a=`%c${r}${n}`;switch(e.level){case o.DEBUG:console.debug?console.debug(a,s):console.log(a,s);break;case o.INFO:console.info(a,s);break;case o.WARN:console.warn(a,s);break;case o.ERROR:console.error(a,s);break}}createChild(){return new c(this.config)}formatMessage(e){const r=e.timestamp.toISOString(),s=o[e.level].toUpperCase();return`[${r}] ${s}: ${e.message}`}getConsoleStyle(e){if(!this.config.colorize)return"";switch(e){case o.DEBUG:return"color: #888; font-weight: normal;";case o.INFO:return"color: #007acc; font-weight: normal;";case o.WARN:return"color: #ff8c00; font-weight: bold;";case o.ERROR:return"color: #dc3545; font-weight: bold;";default:return""}}shouldLogInProduction(){return(globalThis.process?.env?.NODE_ENV||globalThis.process?.env?.NEXT_PUBLIC_APP_ENV||"development")!=="production"||this.level<=o.ERROR}shouldLog(e){return!this.shouldLogInProduction()&&e<o.ERROR?!1:super.shouldLog(e)}}class _ extends c{constructor(){super(...arguments),this.groupStack=[]}group(e){console.group(e),this.groupStack.push(e)}groupCollapsed(e){console.groupCollapsed(e),this.groupStack.push(e)}groupEnd(){console.groupEnd(),this.groupStack.pop()}getCurrentGroupStack(){return[...this.groupStack]}getCurrentGroupPath(){return this.groupStack.join(" > ")}time(e){console.time(e)}timeEnd(e){console.timeEnd(e)}trace(e,r){console.trace(e,r)}count(e){console.count(e)}countReset(e){console.countReset(e)}table(e){console.table(e)}}class $ extends c{mark(e){typeof performance<"u"&&performance.mark&&performance.mark(e)}measure(e,r,s){if(typeof performance<"u"&&performance.measure)try{performance.measure(e,r,s);const n=performance.getEntriesByName(e,"measure");if(n.length>0){const a=n[n.length-1];this.info(`Performance: ${e}`,{duration:a.duration,startTime:a.startTime})}}catch(n){this.warn("Failed to measure performance",{name:e,error:n})}}clearMarks(e){typeof performance<"u"&&performance.clearMarks&&performance.clearMarks(e)}clearMeasures(e){typeof performance<"u"&&performance.clearMeasures&&performance.clearMeasures(e)}}function m(){const t=l();return{level:o.INFO,format:"text",timestamp:!0,colorize:t.capabilities.colorSupport,metadata:{},transports:[{type:"console",options:{}}]}}function P(){const t={};if(typeof process<"u"&&process.env){const e=process.env;e.LOG_LEVEL&&(t.level=z(e.LOG_LEVEL)),e.LOG_FORMAT&&["json","text"].includes(e.LOG_FORMAT)&&(t.format=e.LOG_FORMAT),e.LOG_TIMESTAMP&&(t.timestamp=e.LOG_TIMESTAMP.toLowerCase()==="true"),e.LOG_COLOR&&(t.colorize=e.LOG_COLOR.toLowerCase()==="true")}return t}async function j(t){const e=l();if(!e.capabilities.fileSystem)return{};const r=t?[t]:["logan.config.json","logan.config.js",".loganrc","package.json"];for(const s of r)try{if(e.name==="node")return await E(s);if(e.name==="deno")return await U(s);if(e.name==="bun")return await x(s)}catch{}return{}}async function E(t){try{const e=await Promise.resolve().then(()=>require("./__vite-browser-external-BcPniuRQ.js")),r=await Promise.resolve().then(()=>require("./__vite-browser-external-BcPniuRQ.js"));if(t.endsWith(".json")){const s=await e.readFile(t,"utf-8"),n=JSON.parse(s);return t==="package.json"?n.logan||{}:n}else if(t.endsWith(".js")){const s=r.resolve(t);delete require.cache[s];const n=require(s);return n.default||n}}catch{}return{}}async function U(t){try{if(t.endsWith(".json")){const e=await globalThis.Deno.readTextFile(t),r=JSON.parse(e);return t==="package.json"?r.logan||{}:r}else if(t.endsWith(".js")){const e=await import(`./${t}`);return e.default||e}}catch{}return{}}async function x(t){return E(t)}function z(t){switch(t.toLowerCase()){case"debug":return o.DEBUG;case"info":return o.INFO;case"warn":case"warning":return o.WARN;case"error":return o.ERROR;case"silent":case"none":return o.SILENT;default:return o.INFO}}function V(...t){const e=m();return t.reduce((r,s)=>({...r,...s,metadata:{...r.metadata,...s.metadata},transports:s.transports||r.transports}),e)}class R{static create(e={}){const r=l(),s=this.mergeConfig(e);switch(r.name){case"node":return new u(s);case"deno":return new c(s);case"bun":return new u(s);case"browser":case"webworker":return new c(s);default:return new c(s)}}static createChild(e,r){return e.child(r)}static mergeConfig(e){const r=m();return{...r,...e,metadata:{...r.metadata,...e.metadata}}}}function O(t){return R.create(t)}function q(){const t=H(),e={level:J(t),colorize:t!=="production",timestamp:!0,format:t==="production"?"json":"text"};return O(e)}function H(){return typeof process<"u"&&process.env?process.env.NODE_ENV||process.env.NEXT_PUBLIC_APP_ENV||process.env.ENVIRONMENT||"development":typeof window<"u"&&globalThis.__ENV__||"development"}function J(t){switch(t){case"production":return o.ERROR;case"staging":case"test":return o.WARN;case"development":case"dev":return o.DEBUG;default:return o.INFO}}function Y(t){switch(t.toLowerCase()){case"debug":return o.DEBUG;case"info":return o.INFO;case"warn":case"warning":return o.WARN;case"error":return o.ERROR;case"silent":case"none":return o.SILENT;default:return o.INFO}}function X(t){switch(t){case o.DEBUG:return"debug";case o.INFO:return"info";case o.WARN:return"warn";case o.ERROR:return"error";case o.SILENT:return"silent";default:return"info"}}exports.BaseLogger=g;exports.BrowserLogger=c;exports.ConsoleGroupLogger=_;exports.LogLevel=o;exports.LoggerFactory=R;exports.NodeLogger=u;exports.PerformanceLogger=$;exports.createLogger=O;exports.createLoggerForEnvironment=q;exports.createMorganStream=A;exports.detectRuntime=l;exports.filterSensitiveData=w;exports.getDefaultConfig=m;exports.isBrowser=M;exports.isBun=W;exports.isDeno=B;exports.isNode=D;exports.loadConfigFromEnvironment=P;exports.loadConfigFromFile=j;exports.logLevelToString=X;exports.mergeConfigs=V;exports.safeStringify=d;exports.serializeError=G;exports.stringToLogLevel=Y;
|