UNPKG

fixparser-plugin-log-console

Version:

Console / JSON Log transport for FIXParser

70 lines (69 loc) 1.84 kB
// src/ConsoleLogTransport.ts var ConsoleLogTransport = class { format; useStderr; constructor({ format = "json", useStderr = false }) { this.format = format; this.useStderr = useStderr; } /** * Configures the format for console logging (either 'console' for text, 'json', or 'jsonrpc'). */ configure(config) { this.format = config.format || "json"; if (config.useStderr !== void 0) { this.useStderr = config.useStderr; } } /** * Sends the log message to the console in the configured format. */ async send(log) { const logMethod = this.useStderr ? console.error : console.log; if (this.format === "json") { logMethod(JSON.stringify(log)); } else if (this.format === "jsonrpc") { const { message, ...rest } = log; const jsonrpcMessage = { jsonrpc: "2.0", method: log.level, params: { message, ...rest } }; logMethod(JSON.stringify(jsonrpcMessage)); } else { const { name, id, message, level, ...additionalProperties } = log; const kv = Object.entries(additionalProperties).map(([key, value]) => `${key}: ${value}`); let logMessage = ""; if (name) { logMessage += `${name} `; } logMessage += `${id}: ${message}`; void kv; void level; logMethod(logMessage, kv.join(", ")); } } /** * Flushes the log buffer (if any buffering mechanism exists). */ async flush() { } /** * Closes the transport (not needed for console, but keeping the method for consistency). */ async close() { } /** * Returns the status of the transport (always "connected" for console). */ status() { return "connected"; } }; export { ConsoleLogTransport }; //# sourceMappingURL=ConsoleLogTransport.mjs.map