import { ILogger } from '@midwayjs/logger'; import { Context } from '@mwcp/share'; import type { Span } from '@opentelemetry/api'; import { OtelComponent } from './component.js'; import { TraceService } from './trace.service/index.trace.service.js'; import { TraceLogType } from './types.js'; /** * 集成链路追踪 AppLogger * - 打印日志同时会在链路上报日志级别和内容 * - 生产环境应设置合理采样率避免过多的日志随链路上报 */ export declare class TraceAppLogger implements ILogger { protected readonly otel: OtelComponent; protected readonly logger: ILogger; debug(msg: unknown, span: Span | undefined | false, ...args: unknown[]): void; info(msg: unknown, span: Span | undefined | false, ...args: unknown[]): void; warn(msg: unknown, span: Span | undefined | false, ...args: unknown[]): void; error(msg: unknown, span: Span | undefined | false, ...args: unknown[]): void; write(msg: unknown, span: Span | undefined | false, ...args: unknown[]): void; verbose(msg: unknown, span: Span | undefined | false, ...args: unknown[]): void; /** * 打印日志同时会在链路上报日志级别和内容 * @param span * - undefined: 使用请求rootSpan * - false: 仅打印日志,不上报 */ log(input: TraceLogType, span?: Span | false, logger?: ILogger): void; } /** * 集成链路追踪 Context Logger * - 打印日志同时会在链路上报日志级别和内容 * - 生产环境应设置合理采样率避免过多的日志随链路上报 */ export declare class TraceLogger implements ILogger { readonly ctx: Context; protected readonly logger: ILogger; protected readonly traceSvc: TraceService; protected readonly traceAppLogger: TraceAppLogger; debug(msg: unknown, ...args: unknown[]): void; info(msg: unknown, ...args: unknown[]): void; warn(msg: unknown, ...args: unknown[]): void; error(msg: unknown, ...args: unknown[]): void; write(msg: unknown, ...args: unknown[]): void; verbose(msg: unknown, ...args: unknown[]): void; /** * 打印日志同时会在链路上报日志级别和内容 * @param span * - undefined: 使用请求rootSpan * - false: 仅打印日志,不上报 */ log(input: TraceLogType, span?: Span | false): void; }