logan-logger 1.1.11 → 1.1.13
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 → browser-BYqYELrw.js} +1 -1
- package/dist/{browser-C6UkWymL.mjs → browser-Daz7tvRv.mjs} +37 -17
- package/dist/browser.d.ts +3 -3
- package/dist/browser.esm.js +7 -3
- package/dist/browser.js +1 -1
- package/dist/bun.d.ts +4 -4
- package/dist/bun.esm.js +13 -13
- package/dist/bun.js +1 -1
- package/dist/core/logger.d.ts +1 -1
- package/dist/deno.d.ts +4 -4
- package/dist/deno.esm.js +20 -20
- package/dist/deno.js +1 -1
- package/dist/{formatting-BZyid6rr.mjs → formatting-BkTf4uG7.mjs} +1 -1
- package/dist/{formatting-BDuKuXIh.js → formatting-CBWhnvN2.js} +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.esm.js +29 -25
- package/dist/index.js +1 -1
- package/dist/node-BevurxrX.js +1 -0
- package/dist/{node-D140bib-.mjs → node-DX7bmpxx.mjs} +54 -47
- package/dist/node.d.ts +2 -2
- package/dist/node.esm.js +1 -1
- package/dist/node.js +1 -1
- package/dist/runtime/browser.d.ts +1 -1
- package/dist/runtime/node.d.ts +1 -1
- package/package.json +10 -10
- package/dist/node-C009y7d7.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";function f(){const t=c(),e=m(t),o=g(t);return{name:t,version:e,capabilities:o}}function c(){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 m(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 g(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 h(){return c()==="node"}function y(){return c()==="browser"}function b(){return c()==="deno"}function w(){return c()==="bun"}var n=(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))(n||{});class l{constructor(e={}){this.childMetadata={},this.config=e,this.level=e.level??n.INFO,this.runtime=f().name}debug(e,o){this.log(n.DEBUG,e,o)}info(e,o){this.log(n.INFO,e,o)}warn(e,o){this.log(n.WARN,e,o)}error(e,o){this.log(n.ERROR,e,o)}log(e,o,s){if(!this.shouldLog(e))return;const r=typeof o=="function"?o():o,i={...this.childMetadata,...s},a={timestamp:new Date,level:e,message:r,metadata:Object.keys(i).length>0?i:void 0,runtime:this.runtime};this.writeLog(a)}setLevel(e){this.level=e}getLevel(){return this.level}child(e){const o=this.createChild();return o.childMetadata={...this.childMetadata,...e},o}shouldLog(e){return e>=this.level}}function d(t,e){const o=new WeakSet;return JSON.stringify(t,(s,r)=>{if(typeof r=="object"&&r!==null){if(o.has(r))return"[Circular]";o.add(r)}return r instanceof Error?{name:r.name,message:r.message,stack:r.stack,...Object.getOwnPropertyNames(r).reduce((i,a)=>(a!=="name"&&a!=="message"&&a!=="stack"&&(i[a]=r[a]),i),{})}:typeof r=="function"?`[Function: ${r.name||"anonymous"}]`:r===void 0?"[undefined]":typeof r=="bigint"?`[BigInt: ${r.toString()}]`:typeof r=="symbol"?`[Symbol: ${r.toString()}]`:r},e)}function p(t,e=["password","token","secret","key","auth"]){if(typeof t!="object"||t===null)return t;const o=Array.isArray(t)?[]:{};for(const[s,r]of Object.entries(t))e.some(a=>s.toLowerCase().includes(a.toLowerCase()))?o[s]="[REDACTED]":typeof r=="object"&&r!==null?o[s]=p(r,e):o[s]=r;return o}function S(t){return t instanceof Error?{name:t.name,message:t.message,stack:t.stack,...t}:t}class u extends l{constructor(e={}){super(e)}writeLog(e){const o=this.formatMessage(e),s=this.getConsoleStyle(e.level),r=e.metadata?` ${d(e.metadata)}`:"",i=`%c${o}${r}`;switch(e.level){case n.DEBUG:console.debug?console.debug(i,s):console.log(i,s);break;case n.INFO:console.info(i,s);break;case n.WARN:console.warn(i,s);break;case n.ERROR:console.error(i,s);break}}createChild(){return new u(this.config)}formatMessage(e){const o=e.timestamp.toISOString(),s=n[e.level].toUpperCase();return`[${o}] ${s}: ${e.message}`}getConsoleStyle(e){if(!this.config.colorize)return"";switch(e){case n.DEBUG:return"color: #888; font-weight: normal;";case n.INFO:return"color: #007acc; font-weight: normal;";case n.WARN:return"color: #ff8c00; font-weight: bold;";case n.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<=n.ERROR}shouldLog(e){return!this.shouldLogInProduction()&&e<n.ERROR?!1:super.shouldLog(e)}}class R extends u{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,o){console.trace(e,o)}count(e){console.count(e)}countReset(e){console.countReset(e)}table(e){console.table(e)}}class k extends u{mark(e){typeof performance<"u"&&performance.mark&&performance.mark(e)}measure(e,o,s){if(typeof performance<"u"&&performance.measure)try{performance.measure(e,o,s);const r=performance.getEntriesByName(e,"measure");if(r.length>0){const i=r[r.length-1];this.info(`Performance: ${e}`,{duration:i.duration,startTime:i.startTime})}}catch(r){this.warn("Failed to measure performance",{name:e,error:r})}}clearMarks(e){typeof performance<"u"&&performance.clearMarks&&performance.clearMarks(e)}clearMeasures(e){typeof performance<"u"&&performance.clearMeasures&&performance.clearMeasures(e)}}exports.BaseLogger=l;exports.BrowserLogger=u;exports.ConsoleGroupLogger=R;exports.LogLevel=n;exports.PerformanceLogger=k;exports.detectRuntime=f;exports.filterSensitiveData=p;exports.isBrowser=y;exports.isBun=w;exports.isDeno=b;exports.isNode=h;exports.safeStringify=d;exports.serializeError=S;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
var n = /* @__PURE__ */ ((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))(n || {});
|
|
2
1
|
function f() {
|
|
3
2
|
const t = c(), e = l(t), o = d(t);
|
|
4
3
|
return {
|
|
@@ -15,9 +14,15 @@ function l(t) {
|
|
|
15
14
|
case "node":
|
|
16
15
|
return typeof process < "u" ? process.version : void 0;
|
|
17
16
|
case "deno":
|
|
18
|
-
return typeof globalThis.Deno < "u" ?
|
|
17
|
+
return typeof globalThis.Deno < "u" ? (
|
|
18
|
+
// biome-ignore lint/suspicious/noExplicitAny: Runtime-specific global not in TS types
|
|
19
|
+
globalThis.Deno.version?.deno
|
|
20
|
+
) : void 0;
|
|
19
21
|
case "bun":
|
|
20
|
-
return typeof globalThis.Bun < "u" ?
|
|
22
|
+
return typeof globalThis.Bun < "u" ? (
|
|
23
|
+
// biome-ignore lint/suspicious/noExplicitAny: Runtime-specific global not in TS types
|
|
24
|
+
globalThis.Bun.version
|
|
25
|
+
) : void 0;
|
|
21
26
|
case "browser":
|
|
22
27
|
return typeof navigator < "u" ? navigator.userAgent : void 0;
|
|
23
28
|
default:
|
|
@@ -83,22 +88,28 @@ function b() {
|
|
|
83
88
|
function w() {
|
|
84
89
|
return c() === "bun";
|
|
85
90
|
}
|
|
91
|
+
var n = /* @__PURE__ */ ((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))(n || {});
|
|
86
92
|
class p {
|
|
87
93
|
constructor(e = {}) {
|
|
88
94
|
this.childMetadata = {}, this.config = e, this.level = e.level ?? n.INFO, this.runtime = f().name;
|
|
89
95
|
}
|
|
96
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - logger accepts arbitrary metadata (see ILogger interface)
|
|
90
97
|
debug(e, o) {
|
|
91
98
|
this.log(n.DEBUG, e, o);
|
|
92
99
|
}
|
|
100
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - logger accepts arbitrary metadata (see ILogger interface)
|
|
93
101
|
info(e, o) {
|
|
94
102
|
this.log(n.INFO, e, o);
|
|
95
103
|
}
|
|
104
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - logger accepts arbitrary metadata (see ILogger interface)
|
|
96
105
|
warn(e, o) {
|
|
97
106
|
this.log(n.WARN, e, o);
|
|
98
107
|
}
|
|
108
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - logger accepts arbitrary metadata (see ILogger interface)
|
|
99
109
|
error(e, o) {
|
|
100
110
|
this.log(n.ERROR, e, o);
|
|
101
111
|
}
|
|
112
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - logger accepts arbitrary metadata (see ILogger interface)
|
|
102
113
|
log(e, o, s) {
|
|
103
114
|
if (!this.shouldLog(e))
|
|
104
115
|
return;
|
|
@@ -117,6 +128,7 @@ class p {
|
|
|
117
128
|
getLevel() {
|
|
118
129
|
return this.level;
|
|
119
130
|
}
|
|
131
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - logger accepts arbitrary metadata (see ILogger interface)
|
|
120
132
|
child(e) {
|
|
121
133
|
const o = this.createChild();
|
|
122
134
|
return o.childMetadata = { ...this.childMetadata, ...e }, o;
|
|
@@ -127,19 +139,23 @@ class p {
|
|
|
127
139
|
}
|
|
128
140
|
function m(t, e) {
|
|
129
141
|
const o = /* @__PURE__ */ new WeakSet();
|
|
130
|
-
return JSON.stringify(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
142
|
+
return JSON.stringify(
|
|
143
|
+
t,
|
|
144
|
+
(s, r) => {
|
|
145
|
+
if (typeof r == "object" && r !== null) {
|
|
146
|
+
if (o.has(r))
|
|
147
|
+
return "[Circular]";
|
|
148
|
+
o.add(r);
|
|
149
|
+
}
|
|
150
|
+
return r instanceof Error ? {
|
|
151
|
+
name: r.name,
|
|
152
|
+
message: r.message,
|
|
153
|
+
stack: r.stack,
|
|
154
|
+
...Object.getOwnPropertyNames(r).reduce((i, a) => (a !== "name" && a !== "message" && a !== "stack" && (i[a] = r[a]), i), {})
|
|
155
|
+
} : typeof r == "function" ? `[Function: ${r.name || "anonymous"}]` : r === void 0 ? "[undefined]" : typeof r == "bigint" ? `[BigInt: ${r.toString()}]` : typeof r == "symbol" ? `[Symbol: ${r.toString()}]` : r;
|
|
156
|
+
},
|
|
157
|
+
e
|
|
158
|
+
);
|
|
143
159
|
}
|
|
144
160
|
function g(t, e = ["password", "token", "secret", "key", "auth"]) {
|
|
145
161
|
if (typeof t != "object" || t === null)
|
|
@@ -156,6 +172,7 @@ function S(t) {
|
|
|
156
172
|
name: t.name,
|
|
157
173
|
message: t.message,
|
|
158
174
|
stack: t.stack,
|
|
175
|
+
// biome-ignore lint/suspicious/noExplicitAny: Spread Error to capture custom properties
|
|
159
176
|
...t
|
|
160
177
|
// Include any additional properties
|
|
161
178
|
} : t;
|
|
@@ -205,7 +222,8 @@ class u extends p {
|
|
|
205
222
|
}
|
|
206
223
|
}
|
|
207
224
|
shouldLogInProduction() {
|
|
208
|
-
return (globalThis.process?.env?.NODE_ENV ||
|
|
225
|
+
return /* biome-ignore lint/suspicious/noExplicitAny: Browser environment may have process global from bundler */ (globalThis.process?.env?.NODE_ENV || // biome-ignore lint/suspicious/noExplicitAny: Browser environment may have process global from bundler
|
|
226
|
+
globalThis.process?.env?.NEXT_PUBLIC_APP_ENV || "development") !== "production" || this.level <= n.ERROR;
|
|
209
227
|
}
|
|
210
228
|
shouldLog(e) {
|
|
211
229
|
return !this.shouldLogInProduction() && e < n.ERROR ? !1 : super.shouldLog(e);
|
|
@@ -236,6 +254,7 @@ class R extends u {
|
|
|
236
254
|
timeEnd(e) {
|
|
237
255
|
console.timeEnd(e);
|
|
238
256
|
}
|
|
257
|
+
// biome-ignore lint/suspicious/noExplicitAny: Console method accepts arbitrary metadata
|
|
239
258
|
trace(e, o) {
|
|
240
259
|
console.trace(e, o);
|
|
241
260
|
}
|
|
@@ -245,6 +264,7 @@ class R extends u {
|
|
|
245
264
|
countReset(e) {
|
|
246
265
|
console.countReset(e);
|
|
247
266
|
}
|
|
267
|
+
// biome-ignore lint/suspicious/noExplicitAny: Console.table accepts arbitrary tabular data
|
|
248
268
|
table(e) {
|
|
249
269
|
console.table(e);
|
|
250
270
|
}
|
package/dist/browser.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { BrowserLogger, ConsoleGroupLogger, PerformanceLogger } from './runtime/browser';
|
|
1
|
+
import { ILogger, LoggerConfig } from './core/types';
|
|
3
2
|
export type { ILogger, LoggerConfig } from './core/types';
|
|
4
3
|
export { LogLevel } from './core/types';
|
|
4
|
+
export { BrowserLogger, ConsoleGroupLogger, PerformanceLogger } from './runtime/browser';
|
|
5
|
+
export * from './utils/formatting';
|
|
5
6
|
export * from './utils/runtime';
|
|
6
7
|
export * from './utils/serialization';
|
|
7
|
-
export * from './utils/formatting';
|
|
8
8
|
/**
|
|
9
9
|
* Browser-specific logger factory function.
|
|
10
10
|
* Creates a BrowserLogger instance without importing Node.js dependencies.
|
package/dist/browser.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { L as o, B as s, d as a } from "./browser-
|
|
2
|
-
import { C as v, P as E, f as L, a as N, c as w, b as B, i as _, s as C, e as R } from "./browser-
|
|
3
|
-
import { a as x, f as y } from "./formatting-
|
|
1
|
+
import { L as o, B as s, d as a } from "./browser-Daz7tvRv.mjs";
|
|
2
|
+
import { C as v, P as E, f as L, a as N, c as w, b as B, i as _, s as C, e as R } from "./browser-Daz7tvRv.mjs";
|
|
3
|
+
import { a as x, f as y } from "./formatting-BkTf4uG7.mjs";
|
|
4
4
|
function i() {
|
|
5
5
|
const e = a();
|
|
6
6
|
return {
|
|
@@ -55,9 +55,13 @@ function g() {
|
|
|
55
55
|
return u(r);
|
|
56
56
|
}
|
|
57
57
|
const t = g(), p = {
|
|
58
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - legacy API accepts arbitrary metadata
|
|
58
59
|
debug: (e, r) => t.debug(e, r),
|
|
60
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - legacy API accepts arbitrary metadata
|
|
59
61
|
info: (e, r) => t.info(e, r),
|
|
62
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - legacy API accepts arbitrary metadata
|
|
60
63
|
warn: (e, r) => t.warn(e, r),
|
|
64
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - legacy API accepts arbitrary metadata
|
|
61
65
|
error: (e, r) => t.error(e, r)
|
|
62
66
|
};
|
|
63
67
|
export {
|
package/dist/browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./browser-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./browser-BYqYELrw.js"),n=require("./formatting-CBWhnvN2.js");function a(){const r=e.detectRuntime();return{level:e.LogLevel.INFO,format:"text",timestamp:!0,colorize:r.capabilities.colorSupport,metadata:{},transports:[{type:"console",options:{}}]}}function c(){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 l(r){switch(r){case"production":return e.LogLevel.ERROR;case"staging":case"test":return e.LogLevel.WARN;case"development":case"dev":return e.LogLevel.DEBUG;default:return e.LogLevel.INFO}}function i(r={}){const o=a(),g={...o,...r,metadata:{...o.metadata,...r.metadata}};return new e.BrowserLogger(g)}function s(){const r=c(),o={level:l(r),colorize:r!=="production",timestamp:!0,format:r==="production"?"json":"text"};return i(o)}const t=s(),u={debug:(r,o)=>t.debug(r,o),info:(r,o)=>t.info(r,o),warn:(r,o)=>t.warn(r,o),error:(r,o)=>t.error(r,o)};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.formatLevel=n.formatLevel;exports.formatLogEntry=n.formatLogEntry;exports.createLogger=i;exports.createLoggerForEnvironment=s;exports.log=u;exports.logger=t;
|
package/dist/bun.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { NodeLogger } from './runtime/node';
|
|
2
|
-
export type { ILogger, LoggerConfig, LogLevel } from './core/types';
|
|
3
1
|
export { createLogger, createLoggerForEnvironment } from './core/factory';
|
|
4
|
-
export
|
|
2
|
+
export type { ILogger, LoggerConfig, LogLevel } from './core/types';
|
|
3
|
+
export { NodeLogger } from './runtime/node';
|
|
5
4
|
export * from './utils/config';
|
|
6
|
-
export * from './utils/serialization';
|
|
7
5
|
export * from './utils/formatting';
|
|
6
|
+
export * from './utils/runtime';
|
|
7
|
+
export * from './utils/serialization';
|
package/dist/bun.esm.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { N as o, c as r, a as s, g as i, l as t, b as n, m as f } from "./node-
|
|
2
|
-
import {
|
|
3
|
-
import { a as p,
|
|
1
|
+
import { N as o, c as r, a as s, g as i, l as t, b as n, m as f } from "./node-DX7bmpxx.mjs";
|
|
2
|
+
import { a as m, f as l } from "./formatting-BkTf4uG7.mjs";
|
|
3
|
+
import { d as c, f as L, a as v, c as C, b as E, i as F, s as p, e as u } from "./browser-Daz7tvRv.mjs";
|
|
4
4
|
export {
|
|
5
5
|
o as NodeLogger,
|
|
6
6
|
r as createLogger,
|
|
7
7
|
s as createLoggerForEnvironment,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
c as detectRuntime,
|
|
9
|
+
L as filterSensitiveData,
|
|
10
|
+
m as formatLevel,
|
|
11
|
+
l as formatLogEntry,
|
|
12
12
|
i as getDefaultConfig,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
v as isBrowser,
|
|
14
|
+
C as isBun,
|
|
15
|
+
E as isDeno,
|
|
16
|
+
F as isNode,
|
|
17
17
|
t as loadConfigFromEnvironment,
|
|
18
18
|
n as loadConfigFromFile,
|
|
19
19
|
f as mergeConfigs,
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
p as safeStringify,
|
|
21
|
+
u as serializeError
|
|
22
22
|
};
|
package/dist/bun.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./node-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./node-BevurxrX.js"),o=require("./formatting-CBWhnvN2.js"),e=require("./browser-BYqYELrw.js");exports.NodeLogger=r.NodeLogger;exports.createLogger=r.createLogger;exports.createLoggerForEnvironment=r.createLoggerForEnvironment;exports.getDefaultConfig=r.getDefaultConfig;exports.loadConfigFromEnvironment=r.loadConfigFromEnvironment;exports.loadConfigFromFile=r.loadConfigFromFile;exports.mergeConfigs=r.mergeConfigs;exports.formatLevel=o.formatLevel;exports.formatLogEntry=o.formatLogEntry;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;
|
package/dist/core/logger.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ILogger,
|
|
1
|
+
import { ILogger, LogEntry, LoggerConfig, LogLevel, LogMessage, RuntimeName } from './types';
|
|
2
2
|
export declare abstract class BaseLogger implements ILogger {
|
|
3
3
|
protected level: LogLevel;
|
|
4
4
|
protected config: Partial<LoggerConfig>;
|
package/dist/deno.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { BrowserLogger, ConsoleGroupLogger, PerformanceLogger } from './runtime/browser';
|
|
2
|
-
export type { ILogger, LoggerConfig, LogLevel } from './core/types';
|
|
3
1
|
export { createLogger, createLoggerForEnvironment } from './core/factory';
|
|
4
|
-
export
|
|
2
|
+
export type { ILogger, LoggerConfig, LogLevel } from './core/types';
|
|
3
|
+
export { BrowserLogger, ConsoleGroupLogger, PerformanceLogger } from './runtime/browser';
|
|
5
4
|
export * from './utils/config';
|
|
6
|
-
export * from './utils/serialization';
|
|
7
5
|
export * from './utils/formatting';
|
|
6
|
+
export * from './utils/runtime';
|
|
7
|
+
export * from './utils/serialization';
|
package/dist/deno.esm.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { a as F, f as x } from "./formatting-
|
|
1
|
+
import { c as a, a as o, g as s, l as i, b as g, m as t } from "./node-DX7bmpxx.mjs";
|
|
2
|
+
import { B as f, C as m, P as l, d as L, f as c, a as C, c as d, b as p, i as u, s as v, e as B } from "./browser-Daz7tvRv.mjs";
|
|
3
|
+
import { a as F, f as x } from "./formatting-BkTf4uG7.mjs";
|
|
4
4
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
f as BrowserLogger,
|
|
6
|
+
m as ConsoleGroupLogger,
|
|
7
|
+
l as PerformanceLogger,
|
|
8
|
+
a as createLogger,
|
|
9
|
+
o as createLoggerForEnvironment,
|
|
10
|
+
L as detectRuntime,
|
|
11
|
+
c as filterSensitiveData,
|
|
12
12
|
F as formatLevel,
|
|
13
13
|
x as formatLogEntry,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
s as getDefaultConfig,
|
|
15
|
+
C as isBrowser,
|
|
16
|
+
d as isBun,
|
|
17
|
+
p as isDeno,
|
|
18
|
+
u as isNode,
|
|
19
|
+
i as loadConfigFromEnvironment,
|
|
20
|
+
g as loadConfigFromFile,
|
|
21
|
+
t as mergeConfigs,
|
|
22
|
+
v as safeStringify,
|
|
23
|
+
B as serializeError
|
|
24
24
|
};
|
package/dist/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./node-BevurxrX.js"),e=require("./browser-BYqYELrw.js"),o=require("./formatting-CBWhnvN2.js");exports.createLogger=r.createLogger;exports.createLoggerForEnvironment=r.createLoggerForEnvironment;exports.getDefaultConfig=r.getDefaultConfig;exports.loadConfigFromEnvironment=r.loadConfigFromEnvironment;exports.loadConfigFromFile=r.loadConfigFromFile;exports.mergeConfigs=r.mergeConfigs;exports.BrowserLogger=e.BrowserLogger;exports.ConsoleGroupLogger=e.ConsoleGroupLogger;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.formatLevel=o.formatLevel;exports.formatLogEntry=o.formatLogEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const t=require("./browser-
|
|
1
|
+
"use strict";const t=require("./browser-BYqYELrw.js");function L(e,s="text"){if(s==="json"){const m={timestamp:e.timestamp.toISOString(),level:t.LogLevel[e.level].toLowerCase(),message:e.message,runtime:e.runtime};return e.metadata!==void 0&&(m.metadata=e.metadata),t.safeStringify(m)}const o=e.timestamp.toISOString(),a=t.LogLevel[e.level].toUpperCase(),r=e.metadata?` ${t.safeStringify(e.metadata)}`:"";return`[${o}] ${a}: ${e.message}${r}`}function l(e,s=!1){const o=t.LogLevel[e].toUpperCase();if(!s)return o;const a={[t.LogLevel.DEBUG]:"\x1B[36m",[t.LogLevel.INFO]:"\x1B[32m",[t.LogLevel.WARN]:"\x1B[33m",[t.LogLevel.ERROR]:"\x1B[31m",[t.LogLevel.SILENT]:"\x1B[37m"};return`${a[e]||a[t.LogLevel.INFO]}${o}\x1B[0m`}exports.formatLevel=l;exports.formatLogEntry=L;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createLogger, createLoggerForEnvironment } from './core/factory';
|
|
2
|
-
import {
|
|
3
|
-
export * from './core/types';
|
|
4
|
-
export * from './core/logger';
|
|
2
|
+
import { ILogger, LogLevel } from './core/types';
|
|
5
3
|
export * from './core/factory';
|
|
4
|
+
export * from './core/logger';
|
|
5
|
+
export * from './core/types';
|
|
6
6
|
export { BrowserLogger, ConsoleGroupLogger, PerformanceLogger } from './runtime/browser';
|
|
7
|
-
export * from './utils/runtime';
|
|
8
7
|
export * from './utils/config';
|
|
9
|
-
export * from './utils/serialization';
|
|
10
8
|
export * from './utils/formatting';
|
|
9
|
+
export * from './utils/runtime';
|
|
10
|
+
export * from './utils/serialization';
|
|
11
11
|
export declare const logger: ILogger;
|
|
12
12
|
export declare const log: {
|
|
13
13
|
debug: (message: string, meta?: any) => void;
|
|
@@ -16,4 +16,4 @@ export declare const log: {
|
|
|
16
16
|
error: (message: string, meta?: any) => void;
|
|
17
17
|
};
|
|
18
18
|
export { createLogger, createLoggerForEnvironment, LogLevel };
|
|
19
|
-
export type { ILogger,
|
|
19
|
+
export type { ILogger, ILoggerAdapter, LogEntry, LoggerConfig, LogLevelString, LogMessage, RuntimeCapabilities, RuntimeInfo, RuntimeName, TransportConfig, } from './core/types';
|
package/dist/index.esm.js
CHANGED
|
@@ -1,38 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { L as w,
|
|
4
|
-
import { a as G, f as N } from "./formatting-
|
|
1
|
+
import { a } from "./node-DX7bmpxx.mjs";
|
|
2
|
+
import { L as i, c as f, g as L, l, b as m, d as c, m as d, s as v } from "./node-DX7bmpxx.mjs";
|
|
3
|
+
import { g as u, B as C, C as B, L as F, P as b, d as w, f as x, a as E, c as y, b as D, i as S, s as P, e as T } from "./browser-Daz7tvRv.mjs";
|
|
4
|
+
import { a as G, f as N } from "./formatting-BkTf4uG7.mjs";
|
|
5
5
|
const r = a(), g = {
|
|
6
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - legacy API accepts arbitrary metadata
|
|
6
7
|
debug: (e, o) => r.debug(e, o),
|
|
8
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - legacy API accepts arbitrary metadata
|
|
7
9
|
info: (e, o) => r.info(e, o),
|
|
10
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - legacy API accepts arbitrary metadata
|
|
8
11
|
warn: (e, o) => r.warn(e, o),
|
|
12
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - legacy API accepts arbitrary metadata
|
|
9
13
|
error: (e, o) => r.error(e, o)
|
|
10
14
|
};
|
|
11
15
|
export {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
u as BaseLogger,
|
|
17
|
+
C as BrowserLogger,
|
|
18
|
+
B as ConsoleGroupLogger,
|
|
19
|
+
F as LogLevel,
|
|
20
|
+
i as LoggerFactory,
|
|
21
|
+
b as PerformanceLogger,
|
|
22
|
+
f as createLogger,
|
|
19
23
|
a as createLoggerForEnvironment,
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
w as detectRuntime,
|
|
25
|
+
x as filterSensitiveData,
|
|
22
26
|
G as formatLevel,
|
|
23
27
|
N as formatLogEntry,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
L as getDefaultConfig,
|
|
29
|
+
E as isBrowser,
|
|
30
|
+
y as isBun,
|
|
31
|
+
D as isDeno,
|
|
32
|
+
S as isNode,
|
|
33
|
+
l as loadConfigFromEnvironment,
|
|
34
|
+
m as loadConfigFromFile,
|
|
31
35
|
g as log,
|
|
32
|
-
|
|
36
|
+
c as logLevelToString,
|
|
33
37
|
r as logger,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
d as mergeConfigs,
|
|
39
|
+
P as safeStringify,
|
|
40
|
+
T as serializeError,
|
|
41
|
+
v as stringToLogLevel
|
|
38
42
|
};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./node-BevurxrX.js"),e=require("./browser-BYqYELrw.js"),t=require("./formatting-CBWhnvN2.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.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.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.formatLevel=t.formatLevel;exports.formatLogEntry=t.formatLogEntry;exports.log=i;exports.logger=n;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var p=Object.create;var u=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var R=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of O(e))!N.call(t,s)&&s!==o&&u(t,s,{get:()=>e[s],enumerable:!(n=w(e,s))||n.enumerable});return t};var h=(t,e,o)=>(o=t!=null?p(E(t)):{},R(e||!t||!t.__esModule?u(o,"default",{value:t,enumerable:!0}):o,t));const r=require("./browser-BYqYELrw.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(e){console.warn("[logan-logger] Winston not found, falling back to console logging:",e)}}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,...g})=>{const v=Object.keys(g).length?JSON.stringify(g,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 l(){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 L(n);if(e.name==="deno")return await T(n);if(e.name==="bun")return await S(n)}catch{}return{}}async function L(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 a=await import(`file://${o.resolve(t)}`);return a.default||a}}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 L(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 I(...t){const e=l();return t.reduce((o,n)=>({...o,...n,metadata:{...o.metadata,...n.metadata},transports:n.transports||o.transports}),e)}class c{static create(e={}){const o=r.detectRuntime(),n=c.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=l();return{...o,...e,metadata:{...o.metadata,...e.metadata}}}}function f(t){return c.create(t)}function _(){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=c;exports.NodeLogger=i;exports.createLogger=f;exports.createLoggerForEnvironment=_;exports.createMorganStream=F;exports.getDefaultConfig=l;exports.loadConfigFromEnvironment=C;exports.loadConfigFromFile=b;exports.logLevelToString=M;exports.mergeConfigs=I;exports.stringToLogLevel=j;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as
|
|
2
|
-
class i extends
|
|
1
|
+
import { g as w, L as r, s as v, d as l, B as c } from "./browser-Daz7tvRv.mjs";
|
|
2
|
+
class i extends w {
|
|
3
3
|
constructor(e = {}) {
|
|
4
4
|
super(e), this.initializeWinston();
|
|
5
5
|
}
|
|
@@ -7,10 +7,11 @@ class i extends L {
|
|
|
7
7
|
try {
|
|
8
8
|
const e = await import("winston");
|
|
9
9
|
this.winston = this.createWinstonLogger(e);
|
|
10
|
-
} catch {
|
|
11
|
-
console.warn("[logan-logger] Winston not found, falling back to console logging");
|
|
10
|
+
} catch (e) {
|
|
11
|
+
console.warn("[logan-logger] Winston not found, falling back to console logging:", e);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
+
// biome-ignore lint/suspicious/noExplicitAny: Winston is an optional peer dependency, types not guaranteed
|
|
14
15
|
createWinstonLogger(e) {
|
|
15
16
|
const n = e.format.combine(
|
|
16
17
|
e.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
|
|
@@ -20,9 +21,10 @@ class i extends L {
|
|
|
20
21
|
), o = e.format.combine(
|
|
21
22
|
e.format.colorize(),
|
|
22
23
|
e.format.timestamp({ format: "HH:mm:ss" }),
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
// biome-ignore lint/suspicious/noExplicitAny: Winston format callback parameter has dynamic shape
|
|
25
|
+
e.format.printf(({ timestamp: a, level: d, message: p, ...f }) => {
|
|
26
|
+
const L = Object.keys(f).length ? JSON.stringify(f, null, 2) : "";
|
|
27
|
+
return `${a} [${d}]: ${p} ${L}`;
|
|
26
28
|
})
|
|
27
29
|
), s = e.createLogger({
|
|
28
30
|
level: this.getWinstonLevel(this.level),
|
|
@@ -62,7 +64,7 @@ class i extends L {
|
|
|
62
64
|
return new i(this.config);
|
|
63
65
|
}
|
|
64
66
|
writeToConsole(e) {
|
|
65
|
-
const n = e.timestamp.toISOString(), o = r[e.level].toLowerCase(), s = e.metadata ? ` ${
|
|
67
|
+
const n = e.timestamp.toISOString(), o = r[e.level].toLowerCase(), s = e.metadata ? ` ${v(e.metadata)}` : "", a = `[${n}] ${o.toUpperCase()}: ${e.message}${s}`;
|
|
66
68
|
switch (e.level) {
|
|
67
69
|
case r.DEBUG:
|
|
68
70
|
console.debug(a);
|
|
@@ -103,7 +105,7 @@ function b(t) {
|
|
|
103
105
|
}
|
|
104
106
|
};
|
|
105
107
|
}
|
|
106
|
-
function
|
|
108
|
+
function m() {
|
|
107
109
|
const t = l();
|
|
108
110
|
return {
|
|
109
111
|
level: r.INFO,
|
|
@@ -123,7 +125,7 @@ function T() {
|
|
|
123
125
|
const t = {};
|
|
124
126
|
if (typeof process < "u" && process.env) {
|
|
125
127
|
const e = process.env;
|
|
126
|
-
e.LOG_LEVEL && (t.level =
|
|
128
|
+
e.LOG_LEVEL && (t.level = N(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
129
|
}
|
|
128
130
|
return t;
|
|
129
131
|
}
|
|
@@ -141,16 +143,16 @@ async function W(t) {
|
|
|
141
143
|
for (const o of n)
|
|
142
144
|
try {
|
|
143
145
|
if (e.name === "node")
|
|
144
|
-
return await
|
|
146
|
+
return await g(o);
|
|
145
147
|
if (e.name === "deno")
|
|
146
|
-
return await v(o);
|
|
147
|
-
if (e.name === "bun")
|
|
148
148
|
return await O(o);
|
|
149
|
+
if (e.name === "bun")
|
|
150
|
+
return await E(o);
|
|
149
151
|
} catch {
|
|
150
152
|
}
|
|
151
153
|
return {};
|
|
152
154
|
}
|
|
153
|
-
async function
|
|
155
|
+
async function g(t) {
|
|
154
156
|
try {
|
|
155
157
|
const e = await import("./__vite-browser-external-DYxpcVy9.mjs"), n = await import("./__vite-browser-external-DYxpcVy9.mjs");
|
|
156
158
|
if (t.endsWith(".json")) {
|
|
@@ -164,7 +166,7 @@ async function m(t) {
|
|
|
164
166
|
}
|
|
165
167
|
return {};
|
|
166
168
|
}
|
|
167
|
-
async function
|
|
169
|
+
async function O(t) {
|
|
168
170
|
try {
|
|
169
171
|
if (t.endsWith(".json")) {
|
|
170
172
|
const e = await globalThis.Deno.readTextFile(t), n = JSON.parse(e);
|
|
@@ -180,10 +182,10 @@ async function v(t) {
|
|
|
180
182
|
}
|
|
181
183
|
return {};
|
|
182
184
|
}
|
|
183
|
-
async function
|
|
184
|
-
return
|
|
185
|
+
async function E(t) {
|
|
186
|
+
return g(t);
|
|
185
187
|
}
|
|
186
|
-
function
|
|
188
|
+
function N(t) {
|
|
187
189
|
switch (t.toLowerCase()) {
|
|
188
190
|
case "debug":
|
|
189
191
|
return r.DEBUG;
|
|
@@ -201,26 +203,30 @@ function E(t) {
|
|
|
201
203
|
return r.INFO;
|
|
202
204
|
}
|
|
203
205
|
}
|
|
204
|
-
function
|
|
205
|
-
const e =
|
|
206
|
-
return t.reduce(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
...
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
206
|
+
function I(...t) {
|
|
207
|
+
const e = m();
|
|
208
|
+
return t.reduce(
|
|
209
|
+
(n, o) => ({
|
|
210
|
+
// biome-ignore lint/performance/noAccumulatingSpread: Config merging is not performance-critical, readability preferred
|
|
211
|
+
...n,
|
|
212
|
+
...o,
|
|
213
|
+
metadata: {
|
|
214
|
+
...n.metadata,
|
|
215
|
+
...o.metadata
|
|
216
|
+
},
|
|
217
|
+
transports: o.transports || n.transports
|
|
218
|
+
}),
|
|
219
|
+
e
|
|
220
|
+
);
|
|
215
221
|
}
|
|
216
|
-
class
|
|
222
|
+
class u {
|
|
217
223
|
/**
|
|
218
224
|
* Create a logger instance appropriate for the current runtime.
|
|
219
225
|
* @param config - Optional configuration for the logger
|
|
220
226
|
* @returns A logger instance
|
|
221
227
|
*/
|
|
222
228
|
static create(e = {}) {
|
|
223
|
-
const n = l(), o =
|
|
229
|
+
const n = l(), o = u.mergeConfig(e);
|
|
224
230
|
switch (n.name) {
|
|
225
231
|
case "node":
|
|
226
232
|
return new i(o);
|
|
@@ -241,11 +247,12 @@ class N {
|
|
|
241
247
|
* @param metadata - Additional metadata to include in all child log messages
|
|
242
248
|
* @returns A new logger instance with the additional metadata
|
|
243
249
|
*/
|
|
250
|
+
// biome-ignore lint/suspicious/noExplicitAny: Intentional - logger accepts arbitrary metadata
|
|
244
251
|
static createChild(e, n) {
|
|
245
252
|
return e.child(n);
|
|
246
253
|
}
|
|
247
254
|
static mergeConfig(e) {
|
|
248
|
-
const n =
|
|
255
|
+
const n = m();
|
|
249
256
|
return {
|
|
250
257
|
...n,
|
|
251
258
|
...e,
|
|
@@ -256,22 +263,22 @@ class N {
|
|
|
256
263
|
};
|
|
257
264
|
}
|
|
258
265
|
}
|
|
259
|
-
function
|
|
260
|
-
return
|
|
266
|
+
function R(t) {
|
|
267
|
+
return u.create(t);
|
|
261
268
|
}
|
|
262
|
-
function
|
|
263
|
-
const t =
|
|
264
|
-
level:
|
|
269
|
+
function S() {
|
|
270
|
+
const t = h(), e = {
|
|
271
|
+
level: C(t),
|
|
265
272
|
colorize: t !== "production",
|
|
266
273
|
timestamp: !0,
|
|
267
274
|
format: t === "production" ? "json" : "text"
|
|
268
275
|
};
|
|
269
|
-
return
|
|
276
|
+
return R(e);
|
|
270
277
|
}
|
|
271
|
-
function
|
|
278
|
+
function h() {
|
|
272
279
|
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";
|
|
273
280
|
}
|
|
274
|
-
function
|
|
281
|
+
function C(t) {
|
|
275
282
|
switch (t) {
|
|
276
283
|
case "production":
|
|
277
284
|
return r.ERROR;
|
|
@@ -285,7 +292,7 @@ function F(t) {
|
|
|
285
292
|
return r.INFO;
|
|
286
293
|
}
|
|
287
294
|
}
|
|
288
|
-
function
|
|
295
|
+
function _(t) {
|
|
289
296
|
switch (t.toLowerCase()) {
|
|
290
297
|
case "debug":
|
|
291
298
|
return r.DEBUG;
|
|
@@ -320,15 +327,15 @@ function G(t) {
|
|
|
320
327
|
}
|
|
321
328
|
}
|
|
322
329
|
export {
|
|
323
|
-
|
|
330
|
+
u as L,
|
|
324
331
|
i as N,
|
|
325
|
-
|
|
332
|
+
S as a,
|
|
326
333
|
W as b,
|
|
327
|
-
|
|
334
|
+
R as c,
|
|
328
335
|
G as d,
|
|
329
336
|
b as e,
|
|
330
|
-
|
|
337
|
+
m as g,
|
|
331
338
|
T as l,
|
|
332
|
-
|
|
333
|
-
|
|
339
|
+
I as m,
|
|
340
|
+
_ as s
|
|
334
341
|
};
|
package/dist/node.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { NodeLogger, createMorganStream } from './runtime/node';
|
|
2
|
-
export type { ILogger, LoggerConfig, LogLevel } from './core/types';
|
|
3
1
|
export { createLogger, createLoggerForEnvironment } from './core/factory';
|
|
2
|
+
export type { ILogger, LoggerConfig, LogLevel } from './core/types';
|
|
3
|
+
export { createMorganStream, NodeLogger } from './runtime/node';
|
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-BevurxrX.js");exports.NodeLogger=e.NodeLogger;exports.createLogger=e.createLogger;exports.createLoggerForEnvironment=e.createLoggerForEnvironment;exports.createMorganStream=e.createMorganStream;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseLogger } from '../core/logger';
|
|
2
|
-
import { LogEntry,
|
|
2
|
+
import { LogEntry, LoggerConfig, LogLevel } from '../core/types';
|
|
3
3
|
export declare class BrowserLogger extends BaseLogger {
|
|
4
4
|
constructor(config?: Partial<LoggerConfig>);
|
|
5
5
|
protected writeLog(entry: LogEntry): void;
|
package/dist/runtime/node.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseLogger } from '../core/logger';
|
|
2
|
-
import { LogEntry,
|
|
2
|
+
import { LogEntry, LoggerConfig, LogLevel } from '../core/types';
|
|
3
3
|
export declare class NodeLogger extends BaseLogger {
|
|
4
4
|
private winston?;
|
|
5
5
|
constructor(config?: Partial<LoggerConfig>);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "logan-logger",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.13",
|
|
4
4
|
"description": "Universal TypeScript logging library for all JavaScript runtimes",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -46,15 +46,13 @@
|
|
|
46
46
|
"author": "Logan Lindquist Land",
|
|
47
47
|
"license": "MIT",
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@
|
|
50
|
-
"@
|
|
51
|
-
"@
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"typescript": "^5.9.2",
|
|
55
|
-
"vite": "^7.1.7",
|
|
49
|
+
"@biomejs/biome": "^2.3.11",
|
|
50
|
+
"@types/node": "^25.0.9",
|
|
51
|
+
"@vitest/ui": "^4.0.17",
|
|
52
|
+
"typescript": "^5.9.3",
|
|
53
|
+
"vite": "^7.3.1",
|
|
56
54
|
"vite-plugin-dts": "^4.5.4",
|
|
57
|
-
"vitest": "^
|
|
55
|
+
"vitest": "^4.0.17"
|
|
58
56
|
},
|
|
59
57
|
"peerDependencies": {
|
|
60
58
|
"winston": "^3.8.0"
|
|
@@ -81,7 +79,9 @@
|
|
|
81
79
|
"test:watch": "vitest",
|
|
82
80
|
"test:ui": "vitest --ui",
|
|
83
81
|
"test:coverage": "vitest run --coverage",
|
|
84
|
-
"lint": "
|
|
82
|
+
"lint": "biome lint src",
|
|
83
|
+
"lint:fix": "biome lint --write src",
|
|
84
|
+
"format": "biome format --write src",
|
|
85
85
|
"typecheck": "tsc --noEmit"
|
|
86
86
|
}
|
|
87
87
|
}
|
package/dist/node-C009y7d7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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 a=await import(`file://${o.resolve(t)}`);return a.default||a}}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;
|