Camspiers\LoggerBridge\LoggerBridge
Enables global SilverStripe logging with a PSR-3 logger like Monolog.
The logger is attached by using a Request Processor filter. This behaviour is required
so the logger is attached after the environment only and except rules in yml are applied.
- Author: Cam Spiers <camspiers@gmail.com>
Synopsis
class LoggerBridge
implements
RequestFilter
{
- // members
- protected LoggerInterface $logger;
- protected ErrorReporter $errorReporter;
- protected EnvReporter $envReporter;
- protected BacktraceReporter $backtraceReporter;
- protected bool|null $registered;
- protected bool $showErrors = true;
- protected integer $reserveMemory = 5242880;
- protected int|null $reportLevel;
- protected null|callable $errorHandler;
- protected null|callable $exceptionHandler;
- protected bool $reportBacktrace = false;
- protected bool $exceptionInContext = true;
- protected array $errorLogGroups = ;
- protected array $terminatingErrors = ;
- // methods
- public void __construct()
- public void setLogger()
- public LoggerInterface getLogger()
- public void setErrorReporter()
- public ErrorReporter getErrorReporter()
- public void setEnvReporter()
- public EnvReporter getEnvReporter()
- public void setBacktraceReporter()
- public BacktraceReporter getBacktraceReporter()
- public boolean isRegistered()
- public void setErrorLogGroups()
- public mixed getErrorLogGroups()
- public void setShowErrors()
- public boolean isShowErrors()
- public void setReportLevel()
- public int|null getReportLevel()
- public void setReportBacktrace()
- public void setExceptionInContext()
- public void setReserveMemory()
- public int|null getReserveMemory()
- public bool preRequest()
- public bool postRequest()
- public void registerGlobalHandlers()
- public void deregisterGlobalHandlers()
- protected void registerErrorHandler()
- protected void registerExceptionHandler()
- protected void registerFatalErrorHandler()
- public bool|string|void errorHandler()
- public string|void exceptionHandler()
- public void fatalHandler()
- protected ErrorException createException()
- protected bool isFatalError()
- protected array getLastError()
- protected mixed format()
- protected bool isMemoryExhaustedError()
- protected void changeMemoryLimit()
- protected int translateMemoryLimit()
- protected int getMemoryLimit()
- protected int getSuhosinMemoryLimit()
- protected bool isSuhosinRelevant()
- protected int getSuhosinMemoryDifference()
- protected void ensureSuhosinMemory()
- protected void terminate()
Hierarchy
Implements
- RequestFilter
Members
protected
- $backtraceReporter — \Camspiers\LoggerBridge\BacktraceReporter\BacktraceReporter
- $envReporter — \Camspiers\LoggerBridge\EnvReporter\EnvReporter
- $errorHandler — Camspiers\LoggerBridge\null|callable
- $errorLogGroups
—
Defines the way error types are logged - $errorReporter — \Camspiers\LoggerBridge\ErrorReporter\ErrorReporter
- $exceptionHandler — Camspiers\LoggerBridge\null|callable
- $exceptionInContext
—
Camspiers\LoggerBridge\bool
If an ErrorException should be included in the log context when handling errors - $logger — \Psr\Log\LoggerInterface
- $registered — Camspiers\LoggerBridge\bool|null
- $reportBacktrace — Camspiers\LoggerBridge\bool
- $reportLevel — Camspiers\LoggerBridge\int|null
- $reserveMemory — int
- $showErrors — Camspiers\LoggerBridge\bool
-
$terminatingErrors
Defines what errors should terminate
Methods
protected
- changeMemoryLimit() — Change memory_limit by specified amount
- createException()
- ensureSuhosinMemory() — Set the memory_limit so we have enough to handle errors when suhosin is relevant
- format() — Formats objects and array for logging
- getLastError()
- getMemoryLimit()
- getSuhosinMemoryDifference() — Returns how close the max memory limit is to the current memory limit
- getSuhosinMemoryLimit()
- isFatalError() — Returns whether or not the last error was fatal
- isMemoryExhaustedError() — Returns whether or not the passed in error is a memory exhausted error
- isSuhosinRelevant() — Checks if suhosin is enabled and the memory_limit is closer to suhosin.memory_limit than reserveMemory It is in this case where it is relevant to decrease the memory available to the script before it uses all available memory so when we need to increase the memory limit we can do so
- registerErrorHandler() — Registers the error handler
- registerExceptionHandler() — Registers the exception handler
- registerFatalErrorHandler() — Registers the fatal error handler
- terminate() — Provides ability to stub exits in unit tests
- translateMemoryLimit() — Translate the memory limit string to a int in bytes.
public
- __construct()
- deregisterGlobalHandlers() — Removes handlers we have added, and restores others if possible
- errorHandler() — Handles general errors, user, warn and notice
- exceptionHandler() — Handles uncaught exceptions
- fatalHandler() — Handles fatal errors If we are registered, and there is a fatal error then log and try to gracefully handle error output In cases where memory is exhausted increase the memory_limit to allow for logging
- getBacktraceReporter()
- getEnvReporter()
- getErrorLogGroups()
- getErrorReporter()
- getLogger()
- getReportLevel()
- getReserveMemory()
- isRegistered()
- isShowErrors()
- postRequest() — This hook function is executed from RequestProcessor after the request ends
- preRequest() — This hook function is executed from RequestProcessor before the request starts
- registerGlobalHandlers() — Registers global error handlers
- setBacktraceReporter()
- setEnvReporter()
- setErrorLogGroups()
- setErrorReporter()
- setExceptionInContext()
- setLogger()
- setReportBacktrace()
- setReportLevel()
- setReserveMemory()
- setShowErrors()