import * as i0 from '@angular/core'; import { Signal } from '@angular/core'; import * as log4javascript from 'log4javascript'; /** * Configuration for AjaxAppender. */ interface AjaxAppenderConfiguration { /** * Url to send JavaScript logs */ url: string; /** * Specifies whether cookies should be sent with each request. * * Default: false. */ withCredentials?: boolean; /** * Number of log messages sent in each request. * * Default: 1. */ batchSize?: number; /** * Interval for sending log messages (in milliseconds). * * If set to 0, every message will be sent immediatedly. * * Default: 0. */ timerInterval?: number; /** * Threshold. * * Valid values are: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN * * Default: WARN. */ threshold?: string; } /** * An appender which sends the log messages to a server via HTTP. * * A typical configuration could be: * * ```json * { * "url": "https://my.backend.xy/LoggingBackend", * "batchSize": 10, * "timerInterval": 60000, * "threshold": "INFO" * } * ``` */ declare class AjaxAppender extends log4javascript.Appender { private static batchSizeDefault; private static timerIntervalDefault; private static thresholdDefault; private ajaxAppender; private url; private withCredentials; private lastFailure; /** * Creates a new instance of the appender. * * @param configuration configuration for the appender. */ constructor(configuration: AjaxAppenderConfiguration); /** * Configures the logging depending on the given configuration. * * Only the defined properties get overwritten. * Neither url nor withCredentials can be modified. * * @param configuration configuration data. */ configure(configuration: AjaxAppenderConfiguration): void; /** * Appender-specific method to append a log message. * * @param loggingEvent event to be appended. */ append(loggingEvent: log4javascript.LoggingEvent): void; /** * Gets the appender's name. * Mainly for unit testing purposes. * * @return appender's name */ toString(): string; /** * Get the internally used appender. * Mainly for unit testing purposes. */ getInternalAppender(): log4javascript.AjaxAppender; /** * Returns the number of log messages sent in each request. */ getBatchSize(): number; /** * Sets the number of log messages to send in each request. * * @param batchSize new batch size */ setBatchSize(batchSize: number): void; /** * Returns the appender's layout. */ getLayout(): log4javascript.Layout; /** * Sets the appender's layout. */ setLayout(layout: log4javascript.Layout): void; /** * Returns the length of time in milliseconds between each sending of queued log messages. */ getTimerInterval(): number; /** * Sets the length of time in milliseconds between each sending of queued log messages. * * @param timerInterval new timer interval */ setTimerInterval(timerInterval: number): void; /** * Last error message when the appender could not send log messages to the server. * @returns error message */ getLastFailure(): Signal; } /** * Configuration for BrowserConsoleAppender. */ interface BrowserConsoleAppenderConfiguration { /** * Threshold. * * Valid values are: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN * * Default: DEBUG. */ threshold?: string; } /** * Configuration for LocalStorageAppender. */ interface LocalStorageAppenderConfiguration { /** * Key which is used to store the messages in the local storage. */ localStorageKey: string; /** * Maximum number of log messages stored by the appender. * * Default: 250. */ maxMessages?: number; /** * Threshold. * * Valid values are: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN * * Default: WARN. */ threshold?: string; } /** * Log message. */ interface LogMessage { /** * Time when the log was written. */ timeStamp: Date; /** * Log level. */ level: string; /** * Name of the logger. */ logger: string | undefined; /** * Method, in which the message was written. */ methodName: string; /** * Message. */ message: string[]; } /** * An appender which stores the log messages in the browser's local storage. * * The messages are saved JSON-serialized. * You have to configure which key is used for storing the messages. * * A typical configuration could be: * * ```json * { * "localStorageKey": "myLogs", * "maxMessages": 500, * "threshold": "INFO" * } * ``` */ declare class LocalStorageAppender extends log4javascript.Appender { private static maxMessagesDefault; private static thresholdDefault; private maxMessages; private localStorageKey; private logMessages; /** * Creates a new instance of the appender. * * @param configuration configuration for the appender. */ constructor(configuration: LocalStorageAppenderConfiguration); /** * Load log messages from local storage which are stored there under the given key. * * @param localStorageKey local storage key * @return stored messages */ static loadLogMessages(localStorageKey: string): LogMessage[]; /** * Remove log messages from local storage which are stored there under the given key. * * @param localStorageKey local storage key */ static removeLogMessages(localStorageKey: string): void; /** * Configures the logging depending on the given configuration. * * Only the defined properties get overwritten. * The localStorageKey cannot be modified. * * @param configuration configuration data. */ configure(configuration: LocalStorageAppenderConfiguration): void; /** * Appender-specific method to append a log message. * * @param loggingEvent event to be appended. */ append(loggingEvent: log4javascript.LoggingEvent): void; /** * Gets the appender's name. * Mainly for unit testing purposes. * * @return appender's name */ toString(): string; /** * Get the key which is used to store the messages in the local storage. */ getLocalStorageKey(): string; /** * Get the maximum number of messages which will be stored in local storage. */ getMaxMessages(): number; /** * Set the maximum number of messages which will be stored in local storage. * * If the appender stores currently more messages than the new value allows, the oldest messages get removed. * * @param value new maximum number */ setMaxMessages(value: number): void; /** * Gets all messages stored in local storage. * Mainly for unit testing purposes. * * @return stored messages */ getLogMessages(): LogMessage[]; /** * Removes all messages from local storage. * Mainly for unit testing purposes. */ clearLog(): void; } /** * Logging levels. */ declare enum LogLevel { /** * All events should be logged. */ ALL = 0, /** * A fine-grained debug message, typically capturing the flow through the application. */ TRACE = 1, /** * A general debugging event. */ DEBUG = 2, /** * An event for informational purposes. */ INFO = 3, /** * An event that might possible lead to an error. */ WARN = 4, /** * An error in the application, possibly recoverable. */ ERROR = 5, /** * A severe error that will prevent the application from continuing. */ FATAL = 6, /** * No events will be logged. */ OFF = 7 } /** * Helper class for converting log levels from and to different data type. */ declare class LogLevelConverter { /** * Converts log4javascript.Level to internal LogLevel. * * @param level log4javascript's data type * @return internal data type. */ static levelFromLog4Javascript(level: log4javascript.Level): LogLevel; /** * Converts string representation to internal LogLevel. * * @param level string representation * @return internal data type. */ static levelFromString(level: string): LogLevel; /** * Converts internal LogLevel to log4javascript.Level. * * @param internal data type. * @return level log4javascript's data type */ static levelToLog4Javascript(level: LogLevel): log4javascript.Level; } /** * Logger for writing log messages. */ declare class Logger { private logger; /** * Creates a new instance of a logger. */ constructor(logger?: string | any); /** * Get the log level. */ getLogLevel(): LogLevel; /** * Set the log level. * * @param level the new log level */ setLogLevel(level: LogLevel): void; /** * Logs a message at level TRACE. * * @param methodName name of the method * @param params optional parameters to be logged; objects will be formatted as JSON */ trace(methodName: string, ...params: any[]): void; /** * Logs a message at level DEBUG. * * @param methodName name of the method * @param params optional parameters to be logged; objects will be formatted as JSON */ debug(methodName: string, ...params: any[]): void; /** * Logs a message at level INFO. * * @param methodName name of the method * @param params optional parameters to be logged; objects will be formatted as JSON */ info(methodName: string, ...params: any[]): void; /** * Logs a message at level WARN. * * @param methodName name of the method * @param params optional parameters to be logged; objects will be formatted as JSON */ warn(methodName: string, ...params: any[]): void; /** * Logs a message at level ERROR. * * @param methodName name of the method * @param params optional parameters to be logged; objects will be formatted as JSON */ error(methodName: string, ...params: any[]): void; /** * Logs a message at level FATAL. * * @param methodName name of the method * @param params optional parameters to be logged; objects will be formatted as JSON */ fatal(methodName: string, ...params: any[]): void; /** * Logs the entry into a method. * The method name will be logged at level INFO, the parameters at level DEBUG. * * @param methodName name of the method * @param params optional parameters to be logged; objects will be formatted as JSON */ entry(methodName: string, ...params: any[]): void; /** * Logs the exit of a method. * The method name will be logged at level INFO, the parameters at level DEBUG. * * @param methodName name of the method * @param params optional parameters to be logged; objects will be formatted as JSON */ exit(methodName: string, ...params: any[]): void; /** * Formats the given argument. */ formatArgument(arg: any): string; /** * Returns the internal Logger (for unit tests only). */ getInternalLogger(): log4javascript.Logger; } /** * Configuration for MemoryAppender. */ interface MemoryAppenderConfiguration { /** * Maximum number of log messages stored by the appender. * * Default: 250. */ maxMessages?: number; /** * Threshold. * * Valid values are: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN. * * Default: ALL. */ threshold?: string; } /** * Partial configuration definition for LoggingService. */ interface LoggingServiceConfiguration { /** * Log levels for different loggers. * Default: root: WARN */ logLevels?: { /** * Logger name or "root" for root logger. */ loggerName: string; /** * Log level. * Valid values are: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN */ logLevel: string; }[]; /** * Settings for AjaxAppender. */ ajaxAppender?: AjaxAppenderConfiguration; /** * Settings for LocalStorageAppender. */ localStorageAppender?: LocalStorageAppenderConfiguration; /** * Settings for MemoryAppender. */ memoryAppender?: MemoryAppenderConfiguration; /** * Settings for BrowserConsoleAppender. */ browserConsoleAppender?: BrowserConsoleAppenderConfiguration; } /** * Service for logging functionality. * * By default, the following settings are used: * - logger: root with level WARN * - appender: BrowserConsoleAppender with threshold DEBUG and MemoryAppender with threshold ALL * * Via [configure](#configure), it is possible to amend these settings. */ declare class LoggingService { private memoryAppender; private browserConsoleAppender; private ajaxAppender; /** * Creates a new instance of the service. */ constructor(); /** * Configures the logging depending on the given configuration. * * @param configuration configuration data. */ configure(configuration?: LoggingServiceConfiguration): void; /** * Gets the root logger from which all other loggers derive. * * @return root logger */ getRootLogger(): Logger; /** * Gets a logger with the specified name, creating it if a logger with that name does not already exist. * * @param loggerName name of the logger * @return logger */ getLogger(loggerName: string): Logger; /** * Gets the last log messages. * * The log messages are retrieved from the internal [MemoryAppender](../memoryappender.html). * That means you will get only the most current messages. The number of the messages is limited * by its maxMessages value. * * @return log messages */ getLogMessages(): Signal; /** * Loads the log messages written by the LocalStorageAppender with the given key. * * @param localStorageKey key for the local storage * @returns log messages */ getLogMessagesFromLocalStorage(localStorageKey: string): LogMessage[]; /** * Remove all log messages. */ removeLogMessages(): void; /** * Removes the log messages written by the LocalStorageAppender with the given key. * * @param localStorageKey key for the local storage */ removeLogMessagesFromLocalStorage(localStorageKey: string): void; /** * Error messages when the ajax appender could not send log messages to the server. * @returns error messages */ getLastAjaxAppenderFailure(): Signal; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * An appender which stores the log messages in the browser's memory. * * The MemoryAppender is enabled by default. * If you do not specify anything else, it is using this configuration: * * ```JSON * { * "memoryAppender": [ * { * "maxMessages": 250, * "threshold": "ALL" * } * } * ``` */ declare class MemoryAppender extends log4javascript.Appender { private static maxMessagesDefault; private static thresholdDefault; private maxMessages; private logMessages; /** * Creates a new instance of the appender. * * @param configuration configuration for the appender. */ constructor(configuration?: MemoryAppenderConfiguration); /** * Configures the logging depending on the given configuration. * Only the defined properties get overwritten. * * @param configuration configuration data. */ configure(configuration: MemoryAppenderConfiguration): void; /** * Appender-specific method to append a log message. * * @param loggingEvent event to be appended. */ append(loggingEvent: log4javascript.LoggingEvent): void; /** * Gets the appender's name. * Mainly for unit testing purposes. * * @return appender's name */ toString(): string; /** * Get the maximum number of messages which will be stored in memory. */ getMaxMessages(): number; /** * Set the maximum number of messages which will be stored in memory. * * If the appender stores currently more messages than the new value allows, the oldest messages get removed. * * @param value new maximum number */ setMaxMessages(value: number): void; /** * Gets all messages stored in memory. * * @return stored messages */ getLogMessages(): Signal; /** * Remove all messages stored in memory. */ removeLogMessages(): void; } export { AjaxAppender, LocalStorageAppender, LogLevel, LogLevelConverter, Logger, LoggingService, MemoryAppender }; export type { AjaxAppenderConfiguration, BrowserConsoleAppenderConfiguration, LocalStorageAppenderConfiguration, LogMessage, LoggingServiceConfiguration, MemoryAppenderConfiguration };