UNPKG

@loglayer/transport-google-cloud-logging

Version:

Google Cloud Logging (Stackdriver) transport for the LogLayer logging library.

1 lines 4.28 kB
{"version":3,"sources":["/home/runner/work/loglayer/loglayer/packages/transports/google-cloud-logging/dist/index.cjs","../src/GoogleCloudLoggingTransport.ts"],"names":[],"mappings":"AAAA;ACEA,gDAA0D;AAiBnD,IAAM,4BAAA,EAAN,MAAA,QAA0C,yBAAmB;AAAA,EAC1D;AAAA,EACA;AAAA,EAER,WAAA,CAAY,MAAA,EAA2C;AACrD,IAAA,KAAA,CAAM,MAAM,CAAA;AACZ,IAAA,IAAA,CAAK,cAAA,EAAgB,MAAA,CAAO,cAAA,GAAiB,CAAC,CAAA;AAC9C,IAAA,IAAA,CAAK,MAAA,mBAAQ,MAAA,CAAO,KAAA,UAAS,mBAAA,CAAS,OAAA;AAAA,EACxC;AAAA,EAEQ,WAAA,CAAY,KAAA,EAAyB;AAC3C,IAAA,OAAA,CAAQ,KAAA,EAAO;AAAA,MACb,KAAK,mBAAA,CAAS,KAAA;AACZ,QAAA,OAAO,UAAA;AAAA,MACT,KAAK,mBAAA,CAAS,KAAA;AACZ,QAAA,OAAO,OAAA;AAAA,MACT,KAAK,mBAAA,CAAS,IAAA;AACZ,QAAA,OAAO,SAAA;AAAA,MACT,KAAK,mBAAA,CAAS,IAAA;AACZ,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,mBAAA,CAAS,KAAA;AACZ,QAAA,OAAO,OAAA;AAAA,MACT,KAAK,mBAAA,CAAS,KAAA;AACZ,QAAA,OAAO,OAAA;AAAA,MACT,OAAA;AACE,QAAA,OAAO,SAAA;AAAA,IACX;AAAA,EACF;AAAA,EAEA,YAAA,CAAa,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,SAAS,CAAA,EAAmC;AAElF,IAAA,GAAA,CAAI,2BAAA,CAAiB,QAAQ,EAAA,EAAI,2BAAA,CAAiB,IAAA,CAAK,KAAK,CAAA,EAAG;AAC7D,MAAA,OAAO,CAAC,CAAA;AAAA,IACV;AAEA,IAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,MAAA,CAAO,KAAA;AAAA,MACxB;AAAA,QACE,GAAG,IAAA,CAAK,aAAA;AAAA,QACR,QAAA,EAAU,IAAA,CAAK,WAAA,CAAY,QAAQ,CAAA;AAAA,QACnC,SAAA,kBAAW,IAAI,IAAA,CAAK;AAAA,MACtB,CAAA;AAAA,MACA;AAAA,QACE,GAAI,KAAA,GAAQ,QAAA,EAAU,KAAA,EAAO,CAAC,CAAA;AAAA,QAC9B,OAAA,EAAS,QAAA,CAAS,IAAA,CAAK,GAAG;AAAA,MAC5B;AAAA,IACF,CAAA;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA;AAEvB,IAAA,GAAA,CAAI,KAAA,GAAQ,OAAA,EAAS;AACnB,MAAA,OAAO,CAAC,IAAA,EAAM,QAAQ,CAAA;AAAA,IACxB;AAEA,IAAA,OAAO,CAAC,QAAQ,CAAA;AAAA,EAClB;AACF,CAAA;ADxBA;AACE;AACF,kEAAC","file":"/home/runner/work/loglayer/loglayer/packages/transports/google-cloud-logging/dist/index.cjs","sourcesContent":[null,"import type { Log } from \"@google-cloud/logging\";\nimport type { LogEntry } from \"@google-cloud/logging/build/src/entry.js\";\nimport { BaseTransport, LogLevel, LogLevelPriority } from \"@loglayer/transport\";\nimport type { LogLayerTransportConfig, LogLayerTransportParams } from \"@loglayer/transport\";\n\nexport interface GoogleCloudLoggingTransportConfig extends LogLayerTransportConfig<Log> {\n /**\n * The root level data to include for all log entries.\n * \"severity\", \"timestamp\" and \"jsonPayload\" are already populated by the transport.\n * @see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry\n */\n rootLevelData?: Omit<LogEntry, \"severity\" | \"timestamp\" | \"jsonPayload\">;\n\n /**\n * Minimum log level to process. Defaults to \"trace\"\n */\n level?: LogLevel | \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\";\n}\n\nexport class GoogleCloudLoggingTransport extends BaseTransport<Log> {\n private rootLevelData: Omit<LogEntry, \"severity\" | \"timestamp\" | \"jsonPayload\">;\n private level: LogLevel | \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\";\n\n constructor(config: GoogleCloudLoggingTransportConfig) {\n super(config);\n this.rootLevelData = config.rootLevelData || {};\n this.level = config.level ?? LogLevel.trace; // Default to trace to allow all logs\n }\n\n private mapLogLevel(level: LogLevel): string {\n switch (level) {\n case LogLevel.fatal:\n return \"CRITICAL\";\n case LogLevel.error:\n return \"ERROR\";\n case LogLevel.warn:\n return \"WARNING\";\n case LogLevel.info:\n return \"INFO\";\n case LogLevel.debug:\n return \"DEBUG\";\n case LogLevel.trace:\n return \"DEBUG\";\n default:\n return \"DEFAULT\";\n }\n }\n\n shipToLogger({ data, hasData, logLevel, messages }: LogLayerTransportParams): any[] {\n // Skip if log level is lower priority than configured minimum\n if (LogLevelPriority[logLevel] < LogLevelPriority[this.level]) {\n return [];\n }\n\n const entry = this.logger.entry(\n {\n ...this.rootLevelData,\n severity: this.mapLogLevel(logLevel),\n timestamp: new Date(),\n },\n {\n ...(data && hasData ? data : {}),\n message: messages.join(\" \"),\n },\n );\n\n this.logger.write(entry);\n\n if (data && hasData) {\n return [data, messages];\n }\n\n return [messages];\n }\n}\n"]}