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/index.esm.js CHANGED
@@ -1,6 +1,7 @@
1
- import { c as a } from "./node-BqvVrzA_.mjs";
2
- import { b as t, B as f, C as l, L, d as m, P as c, a as d, e as v, p, j as u, f as C, h as B, g as F, i as w, k as E, m as b, l as x, n as y, o as D, q as S, s as P } from "./node-BqvVrzA_.mjs";
3
- import { formatLevel as h, formatLogEntry as j } from "./deno.esm.js";
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
- t as BaseLogger,
12
+ i as BaseLogger,
12
13
  f as BrowserLogger,
13
- l as ConsoleGroupLogger,
14
- L as LogLevel,
15
- m as LoggerFactory,
16
- c as PerformanceLogger,
17
- d as createLogger,
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
- v as detectRuntime,
20
- p as filterSensitiveData,
21
- h as formatLevel,
22
- j as formatLogEntry,
23
- u as getDefaultConfig,
24
- C as isBrowser,
25
- B as isBun,
26
- F as isDeno,
27
- w as isNode,
28
- E as loadConfigFromEnvironment,
29
- b as loadConfigFromFile,
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
- x as logLevelToString,
32
+ S as logLevelToString,
32
33
  r as logger,
33
- y as mergeConfigs,
34
- D as safeStringify,
35
- S as serializeError,
36
- P as stringToLogLevel
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-BKsollr4.js"),n=require("./deno.js"),g=e.createLoggerForEnvironment(),i={debug:(o,r)=>g.debug(o,r),info:(o,r)=>g.info(o,r),warn:(o,r)=>g.warn(o,r),error:(o,r)=>g.error(o,r)};exports.BaseLogger=e.BaseLogger;exports.BrowserLogger=e.BrowserLogger;exports.ConsoleGroupLogger=e.ConsoleGroupLogger;exports.LogLevel=e.LogLevel;exports.LoggerFactory=e.LoggerFactory;exports.PerformanceLogger=e.PerformanceLogger;exports.createLogger=e.createLogger;exports.createLoggerForEnvironment=e.createLoggerForEnvironment;exports.detectRuntime=e.detectRuntime;exports.filterSensitiveData=e.filterSensitiveData;exports.getDefaultConfig=e.getDefaultConfig;exports.isBrowser=e.isBrowser;exports.isBun=e.isBun;exports.isDeno=e.isDeno;exports.isNode=e.isNode;exports.loadConfigFromEnvironment=e.loadConfigFromEnvironment;exports.loadConfigFromFile=e.loadConfigFromFile;exports.logLevelToString=e.logLevelToString;exports.mergeConfigs=e.mergeConfigs;exports.safeStringify=e.safeStringify;exports.serializeError=e.serializeError;exports.stringToLogLevel=e.stringToLogLevel;exports.formatLevel=n.formatLevel;exports.formatLogEntry=n.formatLogEntry;exports.log=i;exports.logger=g;
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
@@ -1,4 +1,4 @@
1
- import { N as a, a as o, c as g, r as t } from "./node-BqvVrzA_.mjs";
1
+ import { N as a, c as o, a as g, e as t } from "./node-cR0agAz0.mjs";
2
2
  export {
3
3
  a as NodeLogger,
4
4
  o as createLogger,
package/dist/node.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./node-BKsollr4.js");exports.NodeLogger=e.NodeLogger;exports.createLogger=e.createLogger;exports.createLoggerForEnvironment=e.createLoggerForEnvironment;exports.createMorganStream=e.createMorganStream;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "logan-logger",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "Universal TypeScript logging library for all JavaScript runtimes",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -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;