@orion-js/logger 4.0.0-next.0 → 4.0.0-next.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/LICENSE +21 -0
- package/dist/index.cjs +111 -16978
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +28 -0
- package/dist/index.d.ts +23 -26
- package/dist/index.js +74 -16959
- package/dist/index.js.map +1 -0
- package/package.json +12 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/formats.ts","../src/logger.ts","../src/helpers/getFileName.ts"],"sourcesContent":["import winston from 'winston'\n\nexport * from './formats'\nexport * from './logger'\nexport * from './types'\n\nexport {winston}\n","import {format, transports} from 'winston'\nimport util from 'node:util'\nimport {isEmpty} from 'lodash'\nimport opentelemetry, {Span} from '@opentelemetry/api'\n\nconst {metadata, timestamp, json, colorize, combine, printf} = format\n\nconst opentelemetryContext = format(info => {\n const activeSpan: Span & {name?: string} = opentelemetry.trace.getActiveSpan()\n if (activeSpan) {\n const spanContex = activeSpan.spanContext()\n if (activeSpan.name && !info.context) {\n info.context = activeSpan.name\n }\n const fields = {\n trace_id: spanContex.traceId,\n span_id: spanContex.spanId,\n trace_flags: `0${spanContex.traceFlags.toString(16)}`,\n }\n Object.assign(info, fields)\n }\n return info\n})\n\nconst metaError = format((info: any) => {\n if (info?.metadata?.value?.error instanceof Error) {\n info.stack = info?.metadata?.value?.error.stack\n info.errorMessage = info?.metadata?.value?.error.message\n delete info?.metadata?.value?.error\n }\n\n if (info?.metadata?.value instanceof Error) {\n info.stack = info?.metadata?.value.stack\n info.errorMessage = info?.metadata?.value.message\n delete info?.metadata?.value\n }\n\n return info\n})\n\nexport const sentryFormat = format(info => {\n const {path, label, ...extra} = info\n return {\n ...extra,\n tags: {\n path: path || '',\n request_id: label,\n },\n }\n})\n\nfunction getMetadataText(metadata: any) {\n const {value, ...rest} = metadata\n if (isEmpty(rest)) {\n if (typeof value === 'undefined') return ''\n return util.inspect(value)\n }\n return `${util.inspect(value)} ${util.inspect(rest)}`\n}\n\nexport const textConsoleFormat = combine(\n colorize(),\n metadata({fillExcept: ['fileName', 'level', 'message', 'stack']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n printf((info: any) => {\n // console.log(info)\n\n const date = new Date(info.timestamp)\n const timeLabel = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`\n const fileNameLabel = info.fileName ? `[${info.fileName}]` : ''\n const stack = info.stack ? `\\n${info.stack}` : ''\n const value = getMetadataText(info.metadata)\n const traceId = info.trace_id\n ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}`\n : ''\n const context = `${info.context || ''} ${traceId}`.trim()\n\n return `[${info.level}] [${timeLabel}] [${context}] ${fileNameLabel} ${info.message} ${value} ${stack}`\n }),\n)\n\nexport const textConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: textConsoleFormat,\n})\n\nexport const jsonConsoleFormat = combine(\n metadata({fillExcept: ['fileName', 'level', 'message']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n json(),\n)\n\nexport const jsonConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: jsonConsoleFormat,\n})\n","import winston, {createLogger as winstonCreateLogger, config, format} from 'winston'\nimport {jsonConsoleTransport, textConsoleTransport} from './formats'\nimport {getFileName} from './helpers/getFileName'\nimport {OrionLogger} from './types'\n\nconst transports: winston.transport[] = [\n (process.env.NODE_ENV !== 'production' || process.env.ORION_DEV || process.env.JEST_WORKER_ID) ? textConsoleTransport : jsonConsoleTransport\n]\n\nexport const winstonLogger = winstonCreateLogger({\n levels: config.npm.levels,\n handleExceptions: true,\n format: format.errors({stack: true}),\n transports: transports\n})\n\nexport const configureLogger = (options: winston.LoggerOptions) => {\n return winstonLogger.configure(options)\n}\n\nexport const setLogLevel = (level: string) => {\n return (winstonLogger.level = level)\n}\n\nexport const addTransport = (transport: winston.transport) => {\n return winstonLogger.add(transport)\n}\n\nexport const getLogger = (context: string) => {\n return winstonLogger.child({context})\n}\n\nconst createLogger = (logger: winston.Logger): OrionLogger => {\n return {\n debug: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.debug({message, fileName, value})\n },\n info: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.info({message, fileName, value})\n },\n warn: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.warn({message, fileName, value})\n },\n error: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.error({message, fileName, value})\n },\n addContext: (module: NodeJS.Module) => {\n if (module.id) {\n const split = String(module.id).split('.orion/build/')\n const fileName = split.length > 1 ? split[1] : split[0]\n return createLogger(logger.child({fileName}))\n }\n return createLogger(logger.child({}))\n },\n addMetadata: (metadata: any) => {\n return createLogger(logger.child(metadata))\n }\n }\n}\n\nexport const logger = createLogger(winstonLogger)\n","export const getFileName = () => {\n try {\n const stack = new Error().stack\n const lines = stack.split('\\n')\n const filePath = lines[3].split('(')[1].split(')')[0]\n return improveFileName(filePath)\n } catch (error) {\n return\n }\n}\n\nexport const improveFileName = (path: string) => {\n if (path.includes('orionjs/packages')) {\n return path.replace(/^.+\\/orionjs\\/packages\\//, '@orion-js/')\n }\n\n if (path.includes('.orion/build')) {\n return path.replace(/^.+\\.orion\\/build\\//, '')\n }\n\n if (path.includes('/node_modules/@')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}/${parts[1]}`\n }\n\n if (path.includes('/node_modules/')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}`\n }\n\n return path\n}\n"],"mappings":"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","names":["winston","import_winston","opentelemetry","metadata","util","import_winston","transports","winstonCreateLogger","logger","module","metadata"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import winston, { transports } from 'winston';
|
|
2
|
+
export { default as winston } from 'winston';
|
|
3
|
+
import * as logform from 'logform';
|
|
4
|
+
|
|
5
|
+
declare const sentryFormat: logform.FormatWrap;
|
|
6
|
+
declare const textConsoleFormat: logform.Format;
|
|
7
|
+
declare const textConsoleTransport: transports.ConsoleTransportInstance;
|
|
8
|
+
declare const jsonConsoleFormat: logform.Format;
|
|
9
|
+
declare const jsonConsoleTransport: transports.ConsoleTransportInstance;
|
|
10
|
+
|
|
11
|
+
type LogFunction = (message: string, metadata?: any) => void;
|
|
12
|
+
interface OrionLogger {
|
|
13
|
+
debug: LogFunction;
|
|
14
|
+
info: LogFunction;
|
|
15
|
+
warn: LogFunction;
|
|
16
|
+
error: LogFunction;
|
|
17
|
+
addContext: (module: NodeJS.Module) => OrionLogger;
|
|
18
|
+
addMetadata: (metadata: any) => OrionLogger;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare const winstonLogger: winston.Logger;
|
|
22
|
+
declare const configureLogger: (options: winston.LoggerOptions) => void;
|
|
23
|
+
declare const setLogLevel: (level: string) => string;
|
|
24
|
+
declare const addTransport: (transport: winston.transport) => winston.Logger;
|
|
25
|
+
declare const getLogger: (context: string) => winston.Logger;
|
|
26
|
+
declare const logger: OrionLogger;
|
|
27
|
+
|
|
28
|
+
export { type LogFunction, type OrionLogger, addTransport, configureLogger, getLogger, jsonConsoleFormat, jsonConsoleTransport, logger, sentryFormat, setLogLevel, textConsoleFormat, textConsoleTransport, winstonLogger };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,31 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import winston, { transports } from 'winston';
|
|
2
|
+
export { default as winston } from 'winston';
|
|
3
|
+
import * as logform from 'logform';
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
+
declare const sentryFormat: logform.FormatWrap;
|
|
6
|
+
declare const textConsoleFormat: logform.Format;
|
|
7
|
+
declare const textConsoleTransport: transports.ConsoleTransportInstance;
|
|
8
|
+
declare const jsonConsoleFormat: logform.Format;
|
|
9
|
+
declare const jsonConsoleTransport: transports.ConsoleTransportInstance;
|
|
5
10
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
info: LogFunction;
|
|
15
|
-
warn: LogFunction;
|
|
16
|
-
error: LogFunction;
|
|
17
|
-
addContext: (module: NodeJS.Module) => OrionLogger;
|
|
18
|
-
addMetadata: (metadata: any) => OrionLogger;
|
|
11
|
+
type LogFunction = (message: string, metadata?: any) => void;
|
|
12
|
+
interface OrionLogger {
|
|
13
|
+
debug: LogFunction;
|
|
14
|
+
info: LogFunction;
|
|
15
|
+
warn: LogFunction;
|
|
16
|
+
error: LogFunction;
|
|
17
|
+
addContext: (module: NodeJS.Module) => OrionLogger;
|
|
18
|
+
addMetadata: (metadata: any) => OrionLogger;
|
|
19
19
|
}
|
|
20
|
-
export declare const winstonLogger: winston.Logger;
|
|
21
|
-
export declare const configureLogger: (options: winston.LoggerOptions) => void;
|
|
22
|
-
export declare const setLogLevel: (level: string) => string;
|
|
23
|
-
export declare const addTransport: (transport: winston.transport) => winston.Logger;
|
|
24
|
-
export declare const getLogger: (context: string) => winston.Logger;
|
|
25
|
-
export declare const logger: OrionLogger;
|
|
26
20
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
declare const winstonLogger: winston.Logger;
|
|
22
|
+
declare const configureLogger: (options: winston.LoggerOptions) => void;
|
|
23
|
+
declare const setLogLevel: (level: string) => string;
|
|
24
|
+
declare const addTransport: (transport: winston.transport) => winston.Logger;
|
|
25
|
+
declare const getLogger: (context: string) => winston.Logger;
|
|
26
|
+
declare const logger: OrionLogger;
|
|
30
27
|
|
|
31
|
-
export {};
|
|
28
|
+
export { type LogFunction, type OrionLogger, addTransport, configureLogger, getLogger, jsonConsoleFormat, jsonConsoleTransport, logger, sentryFormat, setLogLevel, textConsoleFormat, textConsoleTransport, winstonLogger };
|