@autofleet/logger 4.2.0 → 4.2.2-beta.0

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.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var a=require('pino'),pinoCloudLogging=require('pino-cloud-logging');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var a__default=/*#__PURE__*/_interopDefault(a);var l=(t=>(t.trace="trace",t.debug="debug",t.info="info",t.warn="warn",t.error="error",t.fatal="fatal",t))(l||{}),L=n=>n||(process.env.LOG_LEVEL?process.env.LOG_LEVEL:process.env.NODE_ENV&&["production","staging","test"].includes(process.env.NODE_ENV)?"info":(process.env.NODE_ENV==="development","debug")),u=(n,e)=>{let r;return process.env.NODE_ENV==="production"?r=a__default.default(pinoCloudLogging.gcpLogOptions({level:process.env.PINO_LOG_LEVEL||"info",...e})):r=a__default.default({level:process.env.PINO_LOG_LEVEL||"info",transport:{target:"pino-pretty",options:{colorize:true}},...e}),r.level=n,r},s=class{#r=[];#e;constructor(e){this.#e=u(L(e),{mixin:()=>this.addMetadata(),serializers:{...a.stdSerializers,e:a.stdSerializers.errWithCause,err:a.stdSerializers.errWithCause,error:a.stdSerializers.errWithCause,errors(r){return Array.isArray(r)?r.map(a.stdSerializers.errWithCause):a.stdSerializers.errWithCause(r)}}});}winstonLikeLoggerCall(e,r,i){i?this.#e[e](i,r):this.#e[e](r);}addMetadata(){let e={};return this.#r.forEach(r=>{let i=r();Object.assign(e,i);}),e}addContextMiddleware(e){this.#r.push(e);}trace(e,r){this.winstonLikeLoggerCall("trace",e,r);}debug(e,r){this.winstonLikeLoggerCall("debug",e,r);}info(e,r){this.winstonLikeLoggerCall("info",e,r);}warn(e,r){this.winstonLikeLoggerCall("warn",e,r);}error(e,r){this.winstonLikeLoggerCall("error",e,r);}fatal(e,r){this.winstonLikeLoggerCall("fatal",e,r);}child(e){return this.#e.child(e)}get level(){return this.#e.level}},p=n=>new s(n);exports.LogLevel=l;exports.LoggerInstanceManager=s;exports.default=p;//# sourceMappingURL=index.cjs.map
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var a=require('pino'),pinoCloudLogging=require('pino-cloud-logging'),datadogApiClient=require('@datadog/datadog-api-client'),u=require('os');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var a__default=/*#__PURE__*/_interopDefault(a);var u__default=/*#__PURE__*/_interopDefault(u);var d=(o=>(o.trace="trace",o.debug="debug",o.info="info",o.warn="warn",o.error="error",o.fatal="fatal",o))(d||{}),p=n=>n||(process.env.LOG_LEVEL?process.env.LOG_LEVEL:process.env.NODE_ENV&&["production","staging","test"].includes(process.env.NODE_ENV)?"info":(process.env.NODE_ENV==="development","debug")),v=(n,r)=>{let e;return process.env.NODE_ENV==="production"?e=a__default.default(pinoCloudLogging.gcpLogOptions({level:process.env.PINO_LOG_LEVEL||"info",...r})):e=a__default.default({level:process.env.PINO_LOG_LEVEL||"info",transport:{target:"pino-pretty",options:{colorize:true}},...r}),e.level=n,e},i=class{constructor(r){this.#n=[];this.#r=null;this.addContextMiddleware=r=>this.#n.push(r);this.trace=(r,e)=>this.winstonLikeLoggerCall("trace",r,e);this.debug=(r,e)=>this.winstonLikeLoggerCall("debug",r,e);this.info=(r,e)=>this.winstonLikeLoggerCall("info",r,e);this.warn=(r,e)=>this.winstonLikeLoggerCall("warn",r,e);this.error=(r,e)=>this.winstonLikeLoggerCall("error",r,e);this.fatal=(r,e)=>this.winstonLikeLoggerCall("fatal",r,e);this.trackEvent=(r,e={})=>{if(!this.#r)return;let t=process.env.DD_SERVICE||process.env.SERVICE_NAME||"unknown",g=process.env.DD_ENV||process.env.ENV_NAME||"local";this.#r.submitLog({body:[{ddsource:t,service:t,hostname:u__default.default.hostname(),ddtags:`env:${g}`,message:JSON.stringify({event:r,...this.addMetadata(),...e})}]}).catch(()=>{});};this.child=r=>this.#e.child(r);if(process.env.DD_API_KEY){let e=datadogApiClient.client.createConfiguration({authMethods:{apiKeyAuth:process.env.DD_API_KEY}});this.#r=new datadogApiClient.v2.LogsApi(e);}this.#e=v(p(r),{mixin:()=>this.addMetadata(),serializers:{...a.stdSerializers,e:a.stdSerializers.errWithCause,err:a.stdSerializers.errWithCause,error:a.stdSerializers.errWithCause,errors(e){return Array.isArray(e)?e.map(a.stdSerializers.errWithCause):a.stdSerializers.errWithCause(e)}}});}#n;#e;#r;winstonLikeLoggerCall(r,e,t){t?this.#e[r](t,e):this.#e[r](e);}addMetadata(){let r={};return this.#n.forEach(e=>{let t=e();Object.assign(r,t);}),r}get level(){return this.#e.level}},_=n=>new i(n);exports.LogLevel=d;exports.LoggerInstanceManager=i;exports.default=_;//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["LogLevel","getLevel","logLevel","createLoggerInstance","level","options","loggerInstance","Pino","gcpLogOptions","LoggerInstanceManager","#contextMiddlewares","#logger","stdSerializers","val","message","meta","newMetadata","middleware","metadata","index_default","loglevel"],"mappings":"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","file":"index.cjs","sourcesContent":["import Pino, { LoggerOptions, stdSerializers } from 'pino';\nimport { gcpLogOptions } from 'pino-cloud-logging';\n\nexport enum LogLevel {\n trace = 'trace',\n debug = 'debug',\n info = 'info',\n warn = 'warn',\n error = 'error',\n fatal = 'fatal',\n}\n\ntype LogLevels = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst getLevel = (logLevel?: LogLevel): LogLevel => {\n if (logLevel) return logLevel;\n if (process.env.LOG_LEVEL) return process.env.LOG_LEVEL as LogLevel;\n if (process.env.NODE_ENV && ['production', 'staging', 'test'].includes(process.env.NODE_ENV)) return LogLevel.info;\n if (process.env.NODE_ENV === 'development') return LogLevel.debug;\n return LogLevel.debug;\n};\n\nconst createLoggerInstance = (level: LogLevel, options: Omit<LoggerOptions, 'transport'>) => {\n let loggerInstance;\n if (process.env.NODE_ENV === 'production') {\n loggerInstance = Pino(gcpLogOptions({\n level: process.env.PINO_LOG_LEVEL || 'info',\n ...options,\n } as object));\n } else {\n loggerInstance = Pino({\n level: process.env.PINO_LOG_LEVEL || 'info',\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n ...options,\n });\n }\n loggerInstance.level = level;\n return loggerInstance;\n};\n\ntype MiddlewareFunction = () => Record<string, unknown>;\n\nexport class LoggerInstanceManager {\n #contextMiddlewares: MiddlewareFunction[] = [];\n\n #logger: Pino.Logger;\n\n constructor(logLevel?: LogLevel) {\n this.#logger = createLoggerInstance(getLevel(logLevel), {\n mixin: () => this.addMetadata(),\n serializers: {\n ...stdSerializers,\n e: stdSerializers.errWithCause,\n err: stdSerializers.errWithCause,\n error: stdSerializers.errWithCause,\n errors(val) {\n if (Array.isArray(val)) {\n return val.map(stdSerializers.errWithCause);\n }\n return stdSerializers.errWithCause(val);\n },\n },\n });\n }\n\n // To support winston like logging in pino\n winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown) {\n if (meta) {\n this.#logger[logLevel](meta, message);\n } else {\n this.#logger[logLevel](message);\n }\n }\n\n addMetadata(): Record<string, unknown> {\n const newMetadata = {};\n this.#contextMiddlewares.forEach((middleware) => {\n const metadata = middleware();\n Object.assign(newMetadata, metadata);\n });\n return newMetadata;\n }\n\n addContextMiddleware(middleware: MiddlewareFunction) {\n this.#contextMiddlewares.push(middleware);\n }\n\n trace(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.trace, message, meta);\n }\n\n debug(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.debug, message, meta);\n }\n\n info(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.info, message, meta);\n }\n\n warn(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.warn, message, meta);\n }\n\n error(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.error, message, meta);\n }\n\n fatal(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.fatal, message, meta);\n }\n\n child(metadata: Record<string, unknown>) {\n return this.#logger.child(metadata);\n }\n\n get level() {\n return this.#logger.level;\n }\n}\n\nexport default (loglevel?: LogLevels): LoggerInstanceManager => new LoggerInstanceManager(loglevel as LogLevel);\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["LogLevel","getLevel","logLevel","createLoggerInstance","level","options","loggerInstance","Pino","gcpLogOptions","LoggerInstanceManager","#contextMiddlewares","#datadogLogsApi","middleware","message","meta","eventName","data","service","env","os","metadata","#logger","configuration","client","v2","stdSerializers","val","newMetadata","index_default","loglevel"],"mappings":"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","file":"index.cjs","sourcesContent":["import Pino, { LoggerOptions, stdSerializers } from 'pino';\nimport { gcpLogOptions } from 'pino-cloud-logging';\nimport { client, v2 } from '@datadog/datadog-api-client';\nimport os from 'os';\n\nexport enum LogLevel {\n trace = 'trace',\n debug = 'debug',\n info = 'info',\n warn = 'warn',\n error = 'error',\n fatal = 'fatal',\n}\n\ntype LogLevels = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst getLevel = (logLevel?: LogLevel): LogLevel => {\n if (logLevel) return logLevel;\n if (process.env.LOG_LEVEL) return process.env.LOG_LEVEL as LogLevel;\n if (process.env.NODE_ENV && ['production', 'staging', 'test'].includes(process.env.NODE_ENV)) return LogLevel.info;\n if (process.env.NODE_ENV === 'development') return LogLevel.debug;\n return LogLevel.debug;\n};\n\nconst createLoggerInstance = (level: LogLevel, options: Omit<LoggerOptions, 'transport'>) => {\n let loggerInstance;\n if (process.env.NODE_ENV === 'production') {\n loggerInstance = Pino(gcpLogOptions({\n level: process.env.PINO_LOG_LEVEL || 'info',\n ...options,\n } as object));\n } else {\n loggerInstance = Pino({\n level: process.env.PINO_LOG_LEVEL || 'info',\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n ...options,\n });\n }\n loggerInstance.level = level;\n return loggerInstance;\n};\n\ntype MiddlewareFunction = () => Record<string, unknown>;\n\nexport class LoggerInstanceManager {\n #contextMiddlewares: MiddlewareFunction[] = [];\n\n #logger: Pino.Logger;\n\n #datadogLogsApi: v2.LogsApi | null = null;\n\n constructor(logLevel?: LogLevel) {\n if (process.env.DD_API_KEY) {\n const configuration = client.createConfiguration({\n authMethods: { apiKeyAuth: process.env.DD_API_KEY },\n });\n this.#datadogLogsApi = new v2.LogsApi(configuration);\n }\n\n this.#logger = createLoggerInstance(getLevel(logLevel), {\n mixin: () => this.addMetadata(),\n serializers: {\n ...stdSerializers,\n e: stdSerializers.errWithCause,\n err: stdSerializers.errWithCause,\n error: stdSerializers.errWithCause,\n errors(val) {\n if (Array.isArray(val)) {\n return val.map(stdSerializers.errWithCause);\n }\n return stdSerializers.errWithCause(val);\n },\n },\n });\n }\n\n // To support winston like logging in pino\n private winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown) {\n if (meta) {\n this.#logger[logLevel](meta, message);\n } else {\n this.#logger[logLevel](message);\n }\n }\n\n private addMetadata(): Record<string, unknown> {\n const newMetadata = {};\n this.#contextMiddlewares.forEach((middleware) => {\n const metadata = middleware();\n Object.assign(newMetadata, metadata);\n });\n return newMetadata;\n }\n\n addContextMiddleware = (middleware: MiddlewareFunction) => this.#contextMiddlewares.push(middleware);\n\n trace = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.trace, message, meta);\n\n debug = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.debug, message, meta);\n\n info = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.info, message, meta);\n\n warn = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.warn, message, meta);\n\n error = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.error, message, meta);\n\n fatal = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.fatal, message, meta);\n\n trackEvent = (eventName: string, data: Record<string, unknown> = {}): void => {\n if (!this.#datadogLogsApi) return;\n\n const service = process.env.DD_SERVICE || process.env.SERVICE_NAME || 'unknown';\n const env = process.env.DD_ENV || process.env.ENV_NAME || 'local';\n\n this.#datadogLogsApi.submitLog({\n body: [{\n ddsource: service,\n service,\n hostname: os.hostname(),\n ddtags: `env:${env}`,\n message: JSON.stringify({ event: eventName, ...this.addMetadata(), ...data }),\n }],\n }).catch(() => {});\n };\n\n child = (metadata: Record<string, unknown>) => this.#logger.child(metadata);\n\n get level() {\n return this.#logger.level;\n }\n}\n\nexport default (loglevel?: LogLevels): LoggerInstanceManager => new LoggerInstanceManager(loglevel as LogLevel);\n"]}
package/dist/index.d.cts CHANGED
@@ -13,16 +13,17 @@ type MiddlewareFunction = () => Record<string, unknown>;
13
13
  declare class LoggerInstanceManager {
14
14
  #private;
15
15
  constructor(logLevel?: LogLevel);
16
- winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown): void;
17
- addMetadata(): Record<string, unknown>;
18
- addContextMiddleware(middleware: MiddlewareFunction): void;
19
- trace(message: string, meta?: unknown): void;
20
- debug(message: string, meta?: unknown): void;
21
- info(message: string, meta?: unknown): void;
22
- warn(message: string, meta?: unknown): void;
23
- error(message: string, meta?: unknown): void;
24
- fatal(message: string, meta?: unknown): void;
25
- child(metadata: Record<string, unknown>): Pino.Logger<never>;
16
+ private winstonLikeLoggerCall;
17
+ private addMetadata;
18
+ addContextMiddleware: (middleware: MiddlewareFunction) => number;
19
+ trace: (message: string, meta?: unknown) => void;
20
+ debug: (message: string, meta?: unknown) => void;
21
+ info: (message: string, meta?: unknown) => void;
22
+ warn: (message: string, meta?: unknown) => void;
23
+ error: (message: string, meta?: unknown) => void;
24
+ fatal: (message: string, meta?: unknown) => void;
25
+ trackEvent: (eventName: string, data?: Record<string, unknown>) => void;
26
+ child: (metadata: Record<string, unknown>) => Pino.Logger<never>;
26
27
  get level(): Pino.LevelWithSilentOrString;
27
28
  }
28
29
  declare const _default: (loglevel?: LogLevels) => LoggerInstanceManager;
package/dist/index.d.ts CHANGED
@@ -13,16 +13,17 @@ type MiddlewareFunction = () => Record<string, unknown>;
13
13
  declare class LoggerInstanceManager {
14
14
  #private;
15
15
  constructor(logLevel?: LogLevel);
16
- winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown): void;
17
- addMetadata(): Record<string, unknown>;
18
- addContextMiddleware(middleware: MiddlewareFunction): void;
19
- trace(message: string, meta?: unknown): void;
20
- debug(message: string, meta?: unknown): void;
21
- info(message: string, meta?: unknown): void;
22
- warn(message: string, meta?: unknown): void;
23
- error(message: string, meta?: unknown): void;
24
- fatal(message: string, meta?: unknown): void;
25
- child(metadata: Record<string, unknown>): Pino.Logger<never>;
16
+ private winstonLikeLoggerCall;
17
+ private addMetadata;
18
+ addContextMiddleware: (middleware: MiddlewareFunction) => number;
19
+ trace: (message: string, meta?: unknown) => void;
20
+ debug: (message: string, meta?: unknown) => void;
21
+ info: (message: string, meta?: unknown) => void;
22
+ warn: (message: string, meta?: unknown) => void;
23
+ error: (message: string, meta?: unknown) => void;
24
+ fatal: (message: string, meta?: unknown) => void;
25
+ trackEvent: (eventName: string, data?: Record<string, unknown>) => void;
26
+ child: (metadata: Record<string, unknown>) => Pino.Logger<never>;
26
27
  get level(): Pino.LevelWithSilentOrString;
27
28
  }
28
29
  declare const _default: (loglevel?: LogLevels) => LoggerInstanceManager;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import a,{stdSerializers}from'pino';import {gcpLogOptions}from'pino-cloud-logging';var l=(t=>(t.trace="trace",t.debug="debug",t.info="info",t.warn="warn",t.error="error",t.fatal="fatal",t))(l||{}),L=n=>n||(process.env.LOG_LEVEL?process.env.LOG_LEVEL:process.env.NODE_ENV&&["production","staging","test"].includes(process.env.NODE_ENV)?"info":(process.env.NODE_ENV==="development","debug")),u=(n,e)=>{let r;return process.env.NODE_ENV==="production"?r=a(gcpLogOptions({level:process.env.PINO_LOG_LEVEL||"info",...e})):r=a({level:process.env.PINO_LOG_LEVEL||"info",transport:{target:"pino-pretty",options:{colorize:true}},...e}),r.level=n,r},s=class{#r=[];#e;constructor(e){this.#e=u(L(e),{mixin:()=>this.addMetadata(),serializers:{...stdSerializers,e:stdSerializers.errWithCause,err:stdSerializers.errWithCause,error:stdSerializers.errWithCause,errors(r){return Array.isArray(r)?r.map(stdSerializers.errWithCause):stdSerializers.errWithCause(r)}}});}winstonLikeLoggerCall(e,r,i){i?this.#e[e](i,r):this.#e[e](r);}addMetadata(){let e={};return this.#r.forEach(r=>{let i=r();Object.assign(e,i);}),e}addContextMiddleware(e){this.#r.push(e);}trace(e,r){this.winstonLikeLoggerCall("trace",e,r);}debug(e,r){this.winstonLikeLoggerCall("debug",e,r);}info(e,r){this.winstonLikeLoggerCall("info",e,r);}warn(e,r){this.winstonLikeLoggerCall("warn",e,r);}error(e,r){this.winstonLikeLoggerCall("error",e,r);}fatal(e,r){this.winstonLikeLoggerCall("fatal",e,r);}child(e){return this.#e.child(e)}get level(){return this.#e.level}},p=n=>new s(n);export{l as LogLevel,s as LoggerInstanceManager,p as default};//# sourceMappingURL=index.js.map
1
+ import a,{stdSerializers}from'pino';import {gcpLogOptions}from'pino-cloud-logging';import {client,v2}from'@datadog/datadog-api-client';import u from'os';var d=(o=>(o.trace="trace",o.debug="debug",o.info="info",o.warn="warn",o.error="error",o.fatal="fatal",o))(d||{}),p=n=>n||(process.env.LOG_LEVEL?process.env.LOG_LEVEL:process.env.NODE_ENV&&["production","staging","test"].includes(process.env.NODE_ENV)?"info":(process.env.NODE_ENV==="development","debug")),v=(n,r)=>{let e;return process.env.NODE_ENV==="production"?e=a(gcpLogOptions({level:process.env.PINO_LOG_LEVEL||"info",...r})):e=a({level:process.env.PINO_LOG_LEVEL||"info",transport:{target:"pino-pretty",options:{colorize:true}},...r}),e.level=n,e},i=class{constructor(r){this.#n=[];this.#r=null;this.addContextMiddleware=r=>this.#n.push(r);this.trace=(r,e)=>this.winstonLikeLoggerCall("trace",r,e);this.debug=(r,e)=>this.winstonLikeLoggerCall("debug",r,e);this.info=(r,e)=>this.winstonLikeLoggerCall("info",r,e);this.warn=(r,e)=>this.winstonLikeLoggerCall("warn",r,e);this.error=(r,e)=>this.winstonLikeLoggerCall("error",r,e);this.fatal=(r,e)=>this.winstonLikeLoggerCall("fatal",r,e);this.trackEvent=(r,e={})=>{if(!this.#r)return;let t=process.env.DD_SERVICE||process.env.SERVICE_NAME||"unknown",g=process.env.DD_ENV||process.env.ENV_NAME||"local";this.#r.submitLog({body:[{ddsource:t,service:t,hostname:u.hostname(),ddtags:`env:${g}`,message:JSON.stringify({event:r,...this.addMetadata(),...e})}]}).catch(()=>{});};this.child=r=>this.#e.child(r);if(process.env.DD_API_KEY){let e=client.createConfiguration({authMethods:{apiKeyAuth:process.env.DD_API_KEY}});this.#r=new v2.LogsApi(e);}this.#e=v(p(r),{mixin:()=>this.addMetadata(),serializers:{...stdSerializers,e:stdSerializers.errWithCause,err:stdSerializers.errWithCause,error:stdSerializers.errWithCause,errors(e){return Array.isArray(e)?e.map(stdSerializers.errWithCause):stdSerializers.errWithCause(e)}}});}#n;#e;#r;winstonLikeLoggerCall(r,e,t){t?this.#e[r](t,e):this.#e[r](e);}addMetadata(){let r={};return this.#n.forEach(e=>{let t=e();Object.assign(r,t);}),r}get level(){return this.#e.level}},_=n=>new i(n);export{d as LogLevel,i as LoggerInstanceManager,_ as default};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["LogLevel","getLevel","logLevel","createLoggerInstance","level","options","loggerInstance","Pino","gcpLogOptions","LoggerInstanceManager","#contextMiddlewares","#logger","stdSerializers","val","message","meta","newMetadata","middleware","metadata","index_default","loglevel"],"mappings":"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","file":"index.js","sourcesContent":["import Pino, { LoggerOptions, stdSerializers } from 'pino';\nimport { gcpLogOptions } from 'pino-cloud-logging';\n\nexport enum LogLevel {\n trace = 'trace',\n debug = 'debug',\n info = 'info',\n warn = 'warn',\n error = 'error',\n fatal = 'fatal',\n}\n\ntype LogLevels = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst getLevel = (logLevel?: LogLevel): LogLevel => {\n if (logLevel) return logLevel;\n if (process.env.LOG_LEVEL) return process.env.LOG_LEVEL as LogLevel;\n if (process.env.NODE_ENV && ['production', 'staging', 'test'].includes(process.env.NODE_ENV)) return LogLevel.info;\n if (process.env.NODE_ENV === 'development') return LogLevel.debug;\n return LogLevel.debug;\n};\n\nconst createLoggerInstance = (level: LogLevel, options: Omit<LoggerOptions, 'transport'>) => {\n let loggerInstance;\n if (process.env.NODE_ENV === 'production') {\n loggerInstance = Pino(gcpLogOptions({\n level: process.env.PINO_LOG_LEVEL || 'info',\n ...options,\n } as object));\n } else {\n loggerInstance = Pino({\n level: process.env.PINO_LOG_LEVEL || 'info',\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n ...options,\n });\n }\n loggerInstance.level = level;\n return loggerInstance;\n};\n\ntype MiddlewareFunction = () => Record<string, unknown>;\n\nexport class LoggerInstanceManager {\n #contextMiddlewares: MiddlewareFunction[] = [];\n\n #logger: Pino.Logger;\n\n constructor(logLevel?: LogLevel) {\n this.#logger = createLoggerInstance(getLevel(logLevel), {\n mixin: () => this.addMetadata(),\n serializers: {\n ...stdSerializers,\n e: stdSerializers.errWithCause,\n err: stdSerializers.errWithCause,\n error: stdSerializers.errWithCause,\n errors(val) {\n if (Array.isArray(val)) {\n return val.map(stdSerializers.errWithCause);\n }\n return stdSerializers.errWithCause(val);\n },\n },\n });\n }\n\n // To support winston like logging in pino\n winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown) {\n if (meta) {\n this.#logger[logLevel](meta, message);\n } else {\n this.#logger[logLevel](message);\n }\n }\n\n addMetadata(): Record<string, unknown> {\n const newMetadata = {};\n this.#contextMiddlewares.forEach((middleware) => {\n const metadata = middleware();\n Object.assign(newMetadata, metadata);\n });\n return newMetadata;\n }\n\n addContextMiddleware(middleware: MiddlewareFunction) {\n this.#contextMiddlewares.push(middleware);\n }\n\n trace(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.trace, message, meta);\n }\n\n debug(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.debug, message, meta);\n }\n\n info(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.info, message, meta);\n }\n\n warn(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.warn, message, meta);\n }\n\n error(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.error, message, meta);\n }\n\n fatal(message: string, meta?: unknown) {\n this.winstonLikeLoggerCall(LogLevel.fatal, message, meta);\n }\n\n child(metadata: Record<string, unknown>) {\n return this.#logger.child(metadata);\n }\n\n get level() {\n return this.#logger.level;\n }\n}\n\nexport default (loglevel?: LogLevels): LoggerInstanceManager => new LoggerInstanceManager(loglevel as LogLevel);\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["LogLevel","getLevel","logLevel","createLoggerInstance","level","options","loggerInstance","Pino","gcpLogOptions","LoggerInstanceManager","#contextMiddlewares","#datadogLogsApi","middleware","message","meta","eventName","data","service","env","os","metadata","#logger","configuration","client","v2","stdSerializers","val","newMetadata","index_default","loglevel"],"mappings":"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","file":"index.js","sourcesContent":["import Pino, { LoggerOptions, stdSerializers } from 'pino';\nimport { gcpLogOptions } from 'pino-cloud-logging';\nimport { client, v2 } from '@datadog/datadog-api-client';\nimport os from 'os';\n\nexport enum LogLevel {\n trace = 'trace',\n debug = 'debug',\n info = 'info',\n warn = 'warn',\n error = 'error',\n fatal = 'fatal',\n}\n\ntype LogLevels = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst getLevel = (logLevel?: LogLevel): LogLevel => {\n if (logLevel) return logLevel;\n if (process.env.LOG_LEVEL) return process.env.LOG_LEVEL as LogLevel;\n if (process.env.NODE_ENV && ['production', 'staging', 'test'].includes(process.env.NODE_ENV)) return LogLevel.info;\n if (process.env.NODE_ENV === 'development') return LogLevel.debug;\n return LogLevel.debug;\n};\n\nconst createLoggerInstance = (level: LogLevel, options: Omit<LoggerOptions, 'transport'>) => {\n let loggerInstance;\n if (process.env.NODE_ENV === 'production') {\n loggerInstance = Pino(gcpLogOptions({\n level: process.env.PINO_LOG_LEVEL || 'info',\n ...options,\n } as object));\n } else {\n loggerInstance = Pino({\n level: process.env.PINO_LOG_LEVEL || 'info',\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n ...options,\n });\n }\n loggerInstance.level = level;\n return loggerInstance;\n};\n\ntype MiddlewareFunction = () => Record<string, unknown>;\n\nexport class LoggerInstanceManager {\n #contextMiddlewares: MiddlewareFunction[] = [];\n\n #logger: Pino.Logger;\n\n #datadogLogsApi: v2.LogsApi | null = null;\n\n constructor(logLevel?: LogLevel) {\n if (process.env.DD_API_KEY) {\n const configuration = client.createConfiguration({\n authMethods: { apiKeyAuth: process.env.DD_API_KEY },\n });\n this.#datadogLogsApi = new v2.LogsApi(configuration);\n }\n\n this.#logger = createLoggerInstance(getLevel(logLevel), {\n mixin: () => this.addMetadata(),\n serializers: {\n ...stdSerializers,\n e: stdSerializers.errWithCause,\n err: stdSerializers.errWithCause,\n error: stdSerializers.errWithCause,\n errors(val) {\n if (Array.isArray(val)) {\n return val.map(stdSerializers.errWithCause);\n }\n return stdSerializers.errWithCause(val);\n },\n },\n });\n }\n\n // To support winston like logging in pino\n private winstonLikeLoggerCall(logLevel: LogLevel, message: string, meta: unknown) {\n if (meta) {\n this.#logger[logLevel](meta, message);\n } else {\n this.#logger[logLevel](message);\n }\n }\n\n private addMetadata(): Record<string, unknown> {\n const newMetadata = {};\n this.#contextMiddlewares.forEach((middleware) => {\n const metadata = middleware();\n Object.assign(newMetadata, metadata);\n });\n return newMetadata;\n }\n\n addContextMiddleware = (middleware: MiddlewareFunction) => this.#contextMiddlewares.push(middleware);\n\n trace = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.trace, message, meta);\n\n debug = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.debug, message, meta);\n\n info = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.info, message, meta);\n\n warn = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.warn, message, meta);\n\n error = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.error, message, meta);\n\n fatal = (message: string, meta?: unknown) => this.winstonLikeLoggerCall(LogLevel.fatal, message, meta);\n\n trackEvent = (eventName: string, data: Record<string, unknown> = {}): void => {\n if (!this.#datadogLogsApi) return;\n\n const service = process.env.DD_SERVICE || process.env.SERVICE_NAME || 'unknown';\n const env = process.env.DD_ENV || process.env.ENV_NAME || 'local';\n\n this.#datadogLogsApi.submitLog({\n body: [{\n ddsource: service,\n service,\n hostname: os.hostname(),\n ddtags: `env:${env}`,\n message: JSON.stringify({ event: eventName, ...this.addMetadata(), ...data }),\n }],\n }).catch(() => {});\n };\n\n child = (metadata: Record<string, unknown>) => this.#logger.child(metadata);\n\n get level() {\n return this.#logger.level;\n }\n}\n\nexport default (loglevel?: LogLevels): LoggerInstanceManager => new LoggerInstanceManager(loglevel as LogLevel);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autofleet/logger",
3
- "version": "4.2.0",
3
+ "version": "4.2.2-beta.0",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -48,6 +48,7 @@
48
48
  },
49
49
  "homepage": "https://github.com/Autofleet/logger",
50
50
  "dependencies": {
51
+ "@datadog/datadog-api-client": "latest",
51
52
  "pino": "9.2.0",
52
53
  "pino-cloud-logging": "^1.0.6",
53
54
  "pino-pretty": "^11.2.1"
package/readme.md CHANGED
@@ -1,3 +1,5 @@
1
+ # This was moved into the Autorepo. this repo is now archived
2
+
1
3
  # Autofleet Node.js Logger
2
4
 
3
5
  A Winston-like logger for Node.js backend, now using Pino.