import {
  ConsoleLogRecordExporter,
  SimpleLogRecordProcessor,
} from "@opentelemetry/sdk-logs";
import { metrics } from "@opentelemetry/sdk-node";
import {
  ConsoleSpanExporter,
  SimpleSpanProcessor,
} from "@opentelemetry/sdk-trace-base";
import { NodeSDKConfig } from "../index.js";
import {
  _logsProcessorConfig,
  _spansProcessorConfig,
} from "./processor-config.js";
import { Exporters } from "./index.js";

export default function buildConsoleExporters(
  config: NodeSDKConfig,
): Exporters {
  return {
    spans: [
      new SimpleSpanProcessor(new ConsoleSpanExporter()),
      ..._spansProcessorConfig(config),
    ],
    metrics: new metrics.PeriodicExportingMetricReader({
      exporter: new metrics.ConsoleMetricExporter(),
    }),
    logs: [
      ..._logsProcessorConfig(config),
      new SimpleLogRecordProcessor(new ConsoleLogRecordExporter()),
    ],
  };
}
