@datadog/browser-logs
Version:
114 lines (113 loc) • 4.69 kB
TypeScript
import type { Configuration, InitConfiguration } from '@datadog/browser-core';
import { ConsoleApiName, RawReportType } from '@datadog/browser-core';
import type { LogsEvent } from '../logsEvent.types';
import type { LogsEventDomainContext } from '../domainContext.types';
/**
* Init Configuration for the Logs browser SDK.
*
* @category Main
* @example NPM
* ```ts
* import { datadogLogs } from '@datadog/browser-logs'
*
* datadogLogs.init({
* clientToken: '<DATADOG_CLIENT_TOKEN>',
* site: '<DATADOG_SITE>',
* // ...
* })
* ```
* @example CDN
* ```ts
* DD_LOGS.init({
* clientToken: '<DATADOG_CLIENT_TOKEN>',
* site: '<DATADOG_SITE>',
* // ...
* })
* ```
*/
export interface LogsInitConfiguration extends InitConfiguration {
/**
* Access to every logs collected by the Logs SDK before they are sent to Datadog.
* It allows:
* - Enrich your logs with additional context attributes
* - Modify your logs to modify their content, or redact sensitive sequences (see the list of editable properties)
* - Discard selected logs
*
* @category Data Collection
*/
beforeSend?: LogsBeforeSend | undefined;
/**
* Forward console.error logs, uncaught exceptions and network errors to Datadog.
*
* @category Data Collection
* @defaultValue true
*/
forwardErrorsToLogs?: boolean | undefined;
/**
* Forward logs from console.* to Datadog. Use "all" to forward everything or an array of console API names to forward only a subset.
*
* @category Data Collection
*/
forwardConsoleLogs?: ConsoleApiName[] | 'all' | undefined;
/**
* Forward reports from the [Reporting API](https://developer.mozilla.org/en-US/docs/Web/API/Reporting_API) to Datadog. Use "all" to forward everything or an array of report types to forward only a subset.
*
* @category Data Collection
*/
forwardReports?: RawReportType[] | 'all' | undefined;
/**
* Use PCI-compliant intake. See [PCI DSS Compliance](https://docs.datadoghq.com/data_security/pci_compliance/?tab=logmanagement) for further information.
*
* @category Privacy
* @defaultValue false
*/
usePciIntake?: boolean;
}
/**
* Function called before a Log event is sent to Datadog. See {@link LogsInitConfiguration.beforeSend}
*
* @param event - The log event
* @param context - The log event domain context
* @returns true if the event should be sent to Datadog, false otherwise
*/
export type LogsBeforeSend = (event: LogsEvent, context: LogsEventDomainContext) => boolean;
export type HybridInitConfiguration = Omit<LogsInitConfiguration, 'clientToken'>;
export interface LogsConfiguration extends Configuration {
forwardErrorsToLogs: boolean;
forwardConsoleLogs: ConsoleApiName[];
forwardReports: RawReportType[];
requestErrorResponseLengthLimit: number;
}
/**
* arbitrary value, byte precision not needed
*/
export declare const DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT: number;
export declare function validateAndBuildLogsConfiguration(initConfiguration: LogsInitConfiguration, errorStack?: string): LogsConfiguration | undefined;
export declare function validateAndBuildForwardOption<T>(option: readonly T[] | 'all' | undefined, allowedValues: T[], label: string): T[] | undefined;
export declare function serializeLogsConfiguration(configuration: LogsInitConfiguration): {
session_sample_rate: number | undefined;
telemetry_sample_rate: number | undefined;
telemetry_configuration_sample_rate: number | undefined;
telemetry_usage_sample_rate: number | undefined;
use_before_send: boolean;
use_partitioned_cross_site_session_cookie: boolean | undefined;
use_secure_session_cookie: boolean | undefined;
use_proxy: boolean;
silent_multiple_init: boolean | undefined;
track_session_across_subdomains: boolean | undefined;
track_anonymous_user: boolean | undefined;
session_persistence: import("@datadog/browser-core").SessionPersistence | undefined;
allow_fallback_to_local_storage: boolean;
store_contexts_across_pages: boolean;
allow_untrusted_events: boolean;
tracking_consent: import("@datadog/browser-core").TrackingConsent | undefined;
use_allowed_tracking_origins: boolean;
beta_encode_cookie_options: boolean | undefined;
source: "browser" | "flutter" | "unity" | undefined;
sdk_version: string | undefined;
variant: string | undefined;
forward_errors_to_logs: boolean | undefined;
forward_console_logs: ConsoleApiName[] | "all" | undefined;
forward_reports: "all" | RawReportType[] | undefined;
use_pci_intake: boolean | undefined;
};