UNPKG

@sorrir/sorrir-logging

Version:

Logging repository for SORRIR projects.

58 lines (57 loc) 2.54 kB
import * as logger from "winston"; export declare enum Stakeholder { USER = "USER", SYSTEM = "SYSTEM" } export declare type SystemContextStripped = { area: "execution" | "operation" | "orchestration" | "resilience" | "unknown"; }; export declare type SystemContext = SystemContextStripped & { function: string; file: string; }; export declare type ApplicationContext = { unit: string; component: string; degradationMode: string; }; export declare enum LogLevel { info = "info", debug = "debug", warn = "warn", error = "error" } export declare type context<S extends Stakeholder> = { stakeholder: S; contextFields: S extends Stakeholder.USER ? ApplicationContext : SystemContext; }; export interface LogEntry<S extends Stakeholder> extends context<S> { context: context<S>; host: string; data: Record<string, unknown>; } export interface SorrirLog<S extends Stakeholder> { (level: LogLevel, message: string, data: Record<string, unknown>, contextFields: S extends Stakeholder.USER ? ApplicationContext : SystemContextStripped): logger.Logger; } export interface SorrirLogConfigured<S extends Stakeholder> { (level: LogLevel, stakeholder: S, message: string, data: Record<string, unknown>): logger.Logger; } export interface SorrirLogLevel<S extends Stakeholder> { (stakeholder: S, message: string, data: Record<string, unknown>, contextFields?: S extends Stakeholder.USER ? ApplicationContext : SystemContextStripped): logger.Logger; } export declare const sorrirLogger: logger.Logger; /** * The logger aqcuired by this method logs to stdout if the app runs in * production of if either one of SORRIR_ES_URL, SORRIR_ES_USER or SORRIR_ES_PASSWORD * are not set. * Otherwise it logs to the specified Elasticsearch instance. */ export declare function getLogger(): logger.Logger; export declare function configLogger(context: SystemContextStripped | ApplicationContext): void; export declare const log: SorrirLog<Stakeholder.USER | Stakeholder.SYSTEM>; export declare const logCompact: SorrirLogConfigured<Stakeholder.USER | Stakeholder.SYSTEM>; export declare const debug: SorrirLogLevel<Stakeholder.USER | Stakeholder.SYSTEM>; export declare const warn: SorrirLogLevel<Stakeholder.USER | Stakeholder.SYSTEM>; export declare const error: SorrirLogLevel<Stakeholder.USER | Stakeholder.SYSTEM>; export declare const info: SorrirLogLevel<Stakeholder.USER | Stakeholder.SYSTEM>; export declare const logDefault: (level: LogLevel, message: string) => logger.Logger;