@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
JavaScript
;
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;