@elastic/opentelemetry-node
Version:
Elastic Distribution of OpenTelemetry Node.js (EDOT Node.js)
132 lines (131 loc) • 4.65 kB
TypeScript
export var TRACE: number;
export var DEBUG: number;
export var INFO: number;
export var WARN: number;
export var ERROR: number;
export var FATAL: number;
/** @type {Record<string, number>} */
export var levelFromName: Record<string, number>;
/** @type {Record<number, string>} */
export var nameFromLevel: Record<number, string>;
/**
* Resolve a level number, name (upper or lowercase) to a level number value.
*
* @param {string|number} nameOrNum A level name (case-insensitive) or positive
* integer level.
*/
export function resolveLevel(nameOrNum: string | number): number;
/**
* @param {Object} options
* @param {string} [options.name] Name for the logger
* @param {number|string} [options.level] Log level to apply to this logger
* @param {Record<string, any>} [options.fields]
* @returns {Logger}
*/
export function createLogger(options: {
name?: string;
level?: number | string;
fields?: Record<string, any>;
}): Logger;
export class Logger {
/**
* @param {Object} opts
* @param {string} [opts.name] Name for the logger
* @param {number|string} [opts.level] Log level to apply to this logger
* @param {Record<string, any>} [opts.fields]
*/
constructor(opts: {
name?: string;
level?: number | string;
fields?: Record<string, any>;
});
_level: number;
_stringify: typeof safeStableStringify.stringify;
_serializers: {
err: typeof errSerializer;
};
_haveNonRawStreams: boolean;
_streams: any[];
_fields: Record<string, any>;
/**
* @param {Object} s
* @param {string} [s.type]
* @param {number|string} [s.level]
* @param {stream.Writable} [s.stream]
* @param {number|string} [defaultLevel]
*/
_addStream(s: {
type?: string;
level?: number | string;
stream?: stream.Writable;
}, defaultLevel?: number | string): void;
/**
* Get/set the level of all streams on this logger.
*
* Get Usage:
* // Returns the current log level (lowest level of all its streams).
* log.level() -> INFO
*
* Set Usage:
* log.level(INFO) // set all streams to level INFO
* log.level('info') // can use 'info' et al aliases
*
* @param {number|string} [value]
* @returns {number|undefined}
*/
level(value?: number | string): number | undefined;
/**
* Apply registered serializers to the appropriate keys in the given fields.
*
* Pre-condition: This is only called if there is at least one serializer.
*
* @param {Record<string, any>} fields The log record fields.
* @param {Record<string, boolean>} excludeFields Optional mapping of keys to `true` for
* keys to NOT apply a serializer.
*/
_applySerializers(fields: Record<string, any>, excludeFields: Record<string, boolean>): void;
/**
* Emit a log record.
*
* @param {object} rec The log record
*/
_emit(rec: object): void;
/**
* The functions below log a record at a specific level.
*
* Usages:
* log.<level>() -> boolean is-trace-enabled
* log.<level>(<Error> err, [<string> msg, ...])
* log.<level>(<string> msg, ...)
* log.<level>(<object> fields, <string> msg, ...)
*
* where <level> is the lowercase version of the log level. E.g.:
*
* log.info()
*
* @param {Object} [fields] Record of additional fields to log.
* @param {string} msg Log message. This can be followed by additional
* arguments that are handled like
* [util.format](http://nodejs.org/docs/latest/api/all.html#util.format).
*/
trace: (arg0: string | Record<string, any>, ...arg1: any[]) => void;
debug: (arg0: string | Record<string, any>, ...arg1: any[]) => void;
info: (arg0: string | Record<string, any>, ...arg1: any[]) => void;
warn: (arg0: string | Record<string, any>, ...arg1: any[]) => void;
error: (arg0: string | Record<string, any>, ...arg1: any[]) => void;
fatal: (arg0: string | Record<string, any>, ...arg1: any[]) => void;
}
import safeStableStringify = require("safe-stable-stringify");
/**
* A serializer is a function that serializes a JavaScript object to a
* JSON representation for logging. There is a standard set of presumed
* interesting objects in node.js-land.
*
* Serialize an Error object
* (Core error properties are enumerable in node 0.4, not in 0.6).
* @param {Error | Object} err
* @returns {Object}
*/
declare function errSerializer(err: Error | any): any;
import stream = require("stream");
export {};