DestinationBase
in package
Abstract base class for all logging destinations in the Neuron logging system.
This class provides the foundation for implementing various logging outputs such as files, databases, remote services, or console output. It handles common functionality like formatting, filtering, and parent logger relationships.
Concrete implementations must implement the write() method to define how log data is actually output to their specific destination.
Key responsibilities:
- Manages log formatters and filters
- Handles parent logger relationships
- Provides standard file handles for STDOUT/STDERR
- Orchestrates the filtering and formatting pipeline
- Defines the contract for destination-specific writing
Tags
Table of Contents
Properties
- $_filters : array<string|int, mixed>
- $_format : IFormat
- $_parent : ILogger|null
- $_stdErr : mixed
- $_stdOut : mixed
Methods
- __construct() : mixed
- addFilter() : bool
- Adds a logging filter.
- close() : void
- Closes the destination if required.
- getParent() : ILogger
- Gets the parent logger.
- getStdErr() : mixed
- getStdOut() : mixed
- log() : void
- Handles writing the log data after filtering and formatting.
- open() : mixed
- Opens the destination. Destinations may require parameters to be passed in.
- removeFilter() : bool
- Removes a logging filter.
- setFileHandles() : void
- Maps STDERR and STDOUT to file handles in non-CLI environments.
- setFormat() : void
- Sets the formatter.
- setParent() : void
- Sets the parent logger.
- write() : void
- Writes the formatted log data to the specific destination.
Properties
$_filters
private
array<string|int, mixed>
$_filters
= []
$_format
private
IFormat
$_format
$_parent
private
ILogger|null
$_parent
= null
$_stdErr
private
mixed
$_stdErr
$_stdOut
private
mixed
$_stdOut
Methods
__construct()
public
__construct(IFormat $format) : mixed
Parameters
- $format : IFormat
addFilter()
Adds a logging filter.
public
addFilter(IFilter $filter) : bool
Parameters
- $filter : IFilter
Return values
boolclose()
Closes the destination if required.
public
close() : void
getParent()
Gets the parent logger.
public
getParent() : ILogger
Return values
ILoggergetStdErr()
public
getStdErr() : mixed
getStdOut()
public
getStdOut() : mixed
log()
Handles writing the log data after filtering and formatting.
public
log(mixed $text, mixed $level[, mixed $context = [] ]) : void
Parameters
- $text : mixed
-
- Output that has been run through the formatter.
- $level : mixed
-
- Text output level.
- $context : mixed = []
-
- Optional context array
open()
Opens the destination. Destinations may require parameters to be passed in.
public
open(array<string|int, mixed> $params) : mixed
Parameters
- $params : array<string|int, mixed>
Tags
removeFilter()
Removes a logging filter.
public
removeFilter(IFilter $removeFilter) : bool
Parameters
- $removeFilter : IFilter
Return values
boolsetFileHandles()
Maps STDERR and STDOUT to file handles in non-CLI environments.
public
setFileHandles() : void
setFormat()
Sets the formatter.
public
setFormat(IFormat $format) : void
Parameters
- $format : IFormat
setParent()
Sets the parent logger.
public
setParent(ILogger $logger) : void
Parameters
- $logger : ILogger
write()
Writes the formatted log data to the specific destination.
protected
abstract write(string $text, Data $data) : void
This abstract method must be implemented by concrete destination classes to define how log data is actually written to their specific output target. The text has already been formatted and filtered when this method is called.
Parameters
- $text : string
-
The formatted log message ready for output
- $data : Data
-
The complete log data object containing metadata