UNPKG

@papabravocorp/pluggable-logger

Version:

A pluggable logger for Node.js that writes structured logs to local file systems, Azure ADLS, or custom storage backends.

27 lines (26 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AdlsProvider = void 0; const storage_file_datalake_1 = require("@azure/storage-file-datalake"); const buffer_1 = require("buffer"); class AdlsProvider { constructor(accountUrl, credential, container) { this.container = container; const svc = new storage_file_datalake_1.DataLakeServiceClient(accountUrl, credential); this.fileSystemClient = svc.getFileSystemClient(container); } async write(entry) { var _a; const date = entry.timestamp.slice(0, 10); const path = `logs/${date}.log`; const fileClient = this.fileSystemClient.getFileClient(path); if (!(await fileClient.exists())) { await fileClient.create(); } const data = JSON.stringify(entry) + '\n'; const offset = (_a = (await fileClient.getProperties()).contentLength) !== null && _a !== void 0 ? _a : 0; await fileClient.append(data, offset, buffer_1.Buffer.byteLength(data)); await fileClient.flush(offset + buffer_1.Buffer.byteLength(data)); } } exports.AdlsProvider = AdlsProvider;