libs/ngx-pfe/models/pfe-logger.model.ts

Description

PfeLogger Minimal logger contract.

Index

Methods

Methods

debug
debug(message: string, ...params: unknown[])
Parameters :
Name Type Optional
message string No
params unknown[] No
Returns : void
error
error(message: string, ...params: unknown[])
Parameters :
Name Type Optional
message string No
params unknown[] No
Returns : void
info
info(message: string, ...params: unknown[])
Parameters :
Name Type Optional
message string No
params unknown[] No
Returns : void
warn
warn(message: string, ...params: unknown[])
Parameters :
Name Type Optional
message string No
params unknown[] No
Returns : void
import { InjectionToken, isDevMode } from '@angular/core';

/**
 * @constant PFE_LOGGER
 * Injection token for the `PfeLogger` interface.
 * Host applications can override this token to provide their own logger implementation.
 * (e.g. one that forwards to a remote logging backend).
 */
export const PFE_LOGGER: InjectionToken<PfeLogger> = new InjectionToken<PfeLogger>('PFE_LOGGER', {
  providedIn: 'root',
  factory: pfeDefaultLoggerFactory,
});

/**
 * @interface PfeLogger
 * Minimal logger contract.
 */
export interface PfeLogger {
  debug(message: string, ...params: unknown[]): void;
  info(message: string, ...params: unknown[]): void;
  warn(message: string, ...params: unknown[]): void;
  error(message: string, ...params: unknown[]): void;
}

/**
 * @function pfeDefaultLoggerFactory
 * Default minimal PFE_LOGGER implementation.
 * Logs to console in development and is a silent no-op in production.
 */
function pfeDefaultLoggerFactory(): PfeLogger {
  if (!isDevMode()) {
    return {
      debug: () => undefined,
      info: () => undefined,
      warn: () => undefined,
      error: () => undefined,
    };
  }

  return {
    debug: (message: string, ...params: unknown[]) => console.debug(message, ...params),
    info: (message: string, ...params: unknown[]) => console.info(message, ...params),
    warn: (message: string, ...params: unknown[]) => console.warn(message, ...params),
    error: (message: string, ...params: unknown[]) => console.error(message, ...params),
  };
}

results matching ""

    No results matching ""