LogManager
class LogManager implements LoggerInterface mixin Logger
Traits
Constants
| protected SHARED_CONTEXT_KEY |
Context key for shared log context across channels. |
Properties
| protected array | $levels | The Log levels. |
from ParsesLogConfiguration |
| protected array | $channels | The array of resolved channels. |
|
| protected array | $customCreators | The registered custom driver creators. |
|
| protected string | $dateFormat | The standard date format to use when writing logs. |
Methods
Get fallback log channel name.
Parse the string level into a Monolog constant.
Parse the action level from the given configuration.
Extract the log channel from the given configuration.
Build an on-demand log channel.
Create a new, on-demand aggregate logger instance.
Get a log channel instance.
Get a log driver instance.
Attempt to get the log from the local cache.
Create a configured logger, optionally retaining a named channel.
Parse the given tap class string into a class name and arguments string.
Create an emergency log handler to avoid white screens of death.
Resolve the given log instance by name.
Call a custom driver creator.
Create a custom log driver instance.
Create an aggregate log driver instance.
Create an instance of the single file log driver.
Create an instance of the daily file log driver.
Create an instance of the monthly file log driver.
Create an instance of a rotating file log driver.
Create an instance of the Slack log driver.
Create an instance of the syslog log driver.
Create an instance of the "error log" log driver.
Create an instance of any handler available in Monolog.
Prepare the handlers for usage by Monolog.
Prepare the handler for usage by Monolog.
Get a Monolog formatter instance.
Create a wrapped context log processor.
Share context across channels and stacks.
The context shared across channels and stacks.
Flush the log context on all currently resolved channels.
Flush the shared context.
Get the log connection configuration.
Get the default log driver name.
Set the default log driver name.
Unset the given channel instance.
Parse the driver name.
Get all of the resolved log channels.
System is unusable.
Action must be taken immediately.
Critical conditions.
Runtime errors that do not require immediate action but should typically be logged and monitored.
Exceptional occurrences that are not errors.
Normal but significant events.
Detailed debug information.
Logs with an arbitrary level.
Dynamically call the default driver instance.
Details
at line 591
protected string
getFallbackChannelName()
Get fallback log channel name.
in
ParsesLogConfiguration at line 36
protected Level
level(array $config)
Parse the string level into a Monolog constant.
in
ParsesLogConfiguration at line 52
protected Level
actionLevel(array $config)
Parse the action level from the given configuration.
in
ParsesLogConfiguration at line 66
protected string
parseChannel(array $config)
Extract the log channel from the given configuration.
in
RebindsCallbacksToSelf at line 18
protected Closure|null
bindCallbackToSelf(Closure $callback)
Bind the provided callback to the class instance.
at line 80
__construct(Application $app)
Create a new Log manager instance.
at line 88
LoggerInterface
build(array $config)
Build an on-demand log channel.
at line 96
LoggerInterface
stack(array $channels, string|null $channel = null)
Create a new, on-demand aggregate logger instance.
at line 118
LoggerInterface
channel(UnitEnum|string|null $channel = null)
Get a log channel instance.
at line 126
LoggerInterface
driver(UnitEnum|string|null $driver = null)
Get a log driver instance.
at line 138
protected LoggerInterface
get(string|null $name, array|null $config = null)
Attempt to get the log from the local cache.
at line 150
protected LoggerInterface
createLogger(string|null $name, array|null $config = null, bool $cache = false)
Create a configured logger, optionally retaining a named channel.
at line 191
protected Logger
tap(array $config, Logger $logger)
Apply the configured taps for the logger.
at line 205
protected array
parseTap(string $tap)
Parse the given tap class string into a class name and arguments string.
at line 213
protected LoggerInterface
createEmergencyLogger()
Create an emergency log handler to avoid white screens of death.
at line 233
protected LoggerInterface
resolve(string|null $name, array $config)
Resolve the given log instance by name.
at line 251
protected mixed
callCustomCreator(array $config)
Call a custom driver creator.
at line 259
protected LoggerInterface
createCustomDriver(array $config)
Create a custom log driver instance.
at line 269
protected LoggerInterface
createStackDriver(array $config)
Create an aggregate log driver instance.
at line 305
protected LoggerInterface
createSingleDriver(array $config)
Create an instance of the single file log driver.
at line 324
protected LoggerInterface
createDailyDriver(array $config)
Create an instance of the daily file log driver.
at line 336
protected LoggerInterface
createMonthlyDriver(array $config)
Create an instance of the monthly file log driver.
at line 348
protected LoggerInterface
createRotatingDriver(array $config, string $dateFormat, int $maxFiles)
Create an instance of a rotating file log driver.
at line 366
protected LoggerInterface
createSlackDriver(array $config)
Create an instance of the Slack log driver.
at line 387
protected LoggerInterface
createSyslogDriver(array $config)
Create an instance of the syslog log driver.
at line 401
protected LoggerInterface
createErrorlogDriver(array $config)
Create an instance of the "error log" log driver.
at line 416
protected LoggerInterface
createMonologDriver(array $config)
Create an instance of any handler available in Monolog.
at line 474
protected array
prepareHandlers(array $handlers)
Prepare the handlers for usage by Monolog.
at line 486
protected HandlerInterface
prepareHandler(HandlerInterface $handler, array $config = [])
Prepare the handler for usage by Monolog.
at line 514
protected FormatterInterface
formatter()
Get a Monolog formatter instance.
at line 526
protected ResolvedContextLogProcessor
makeContextProcessor()
Create a wrapped context log processor.
Wrapping in ResolvedContextLogProcessor allows createStackDriver() to filter out context processors from constituent channels regardless of how the processor was bound (class, closure, or custom callable).
at line 538
LogManager
shareContext(array $context)
Share context across channels and stacks.
at line 554
array
sharedContext()
The context shared across channels and stacks.
at line 565
LogManager
withoutContext(array|null $keys = null)
Flush the log context on all currently resolved channels.
at line 581
LogManager
flushSharedContext()
Flush the shared context.
at line 599
protected array|null
configurationFor(string|null $name)
Get the log connection configuration.
at line 607
string|null
getDefaultDriver()
Get the default log driver name.
at line 617
void
setDefaultDriver(UnitEnum|string $name)
Set the default log driver name.
Mutates process-global config; per-request use races across coroutines.
at line 638
LogManager
extend(string $driver, Closure $callback)
Register a custom driver creator Closure.
Anonymous closures run in this manager's class scope; non-static closures also receive the manager as $this.
The callback persists in the singleton's customCreators array for the worker lifetime and applies to every subsequent channel resolution.
at line 660
void
forgetChannel(UnitEnum|string|null $driver = null)
Unset the given channel instance.
Mutates the singleton's channel cache; concurrent coroutines may already hold a reference to the channel and next resolution will rebuild with fresh handlers (file handles, etc.).
at line 677
protected string|null
parseDriver(string|null $driver)
Parse the driver name.
at line 695
array
getChannels()
Get all of the resolved log channels.
at line 703
void
emergency(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])
System is unusable.
at line 714
void
alert(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])
Action must be taken immediately.
Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.
at line 724
void
critical(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])
Critical conditions.
Example: Application component unavailable, unexpected exception.
at line 733
void
error(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])
Runtime errors that do not require immediate action but should typically be logged and monitored.
at line 744
void
warning(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])
Exceptional occurrences that are not errors.
Example: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.
at line 752
void
notice(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])
Normal but significant events.
at line 762
void
info(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])
Interesting events.
Example: User logs in, SQL logs.
at line 770
void
debug(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])
Detailed debug information.
at line 780
void
log(string $level, Arrayable|Jsonable|Stringable|array|string $message, array $context = [])
Logs with an arbitrary level.
at line 794
LogManager
setApplication(Application $app)
Set the application instance used by the manager.
Swaps the singleton's Application reference; per-request use races across coroutines and breaks every concurrent request resolving services through this manager.
at line 805
mixed
__call(string $method, array $parameters)
Dynamically call the default driver instance.