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

string
getFallbackChannelName()

Get fallback log channel name.

Level
level(array $config)

Parse the string level into a Monolog constant.

Level
actionLevel(array $config)

Parse the action level from the given configuration.

string
parseChannel(array $config)

Extract the log channel from the given configuration.

Closure|null
bindCallbackToSelf(Closure $callback)

Bind the provided callback to the class instance.

__construct(Application $app)

Create a new Log manager instance.

LoggerInterface
build(array $config)

Build an on-demand log channel.

LoggerInterface
stack(array $channels, string|null $channel = null)

Create a new, on-demand aggregate logger instance.

LoggerInterface
channel(UnitEnum|string|null $channel = null)

Get a log channel instance.

LoggerInterface
driver(UnitEnum|string|null $driver = null)

Get a log driver instance.

LoggerInterface
get(string|null $name, array|null $config = null)

Attempt to get the log from the local cache.

LoggerInterface
createLogger(string|null $name, array|null $config = null, bool $cache = false)

Create a configured logger, optionally retaining a named channel.

tap(array $config, Logger $logger)

Apply the configured taps for the logger.

array
parseTap(string $tap)

Parse the given tap class string into a class name and arguments string.

LoggerInterface
createEmergencyLogger()

Create an emergency log handler to avoid white screens of death.

LoggerInterface
resolve(string|null $name, array $config)

Resolve the given log instance by name.

mixed
callCustomCreator(array $config)

Call a custom driver creator.

LoggerInterface
createCustomDriver(array $config)

Create a custom log driver instance.

LoggerInterface
createStackDriver(array $config)

Create an aggregate log driver instance.

LoggerInterface
createSingleDriver(array $config)

Create an instance of the single file log driver.

LoggerInterface
createDailyDriver(array $config)

Create an instance of the daily file log driver.

LoggerInterface
createSlackDriver(array $config)

Create an instance of the Slack log driver.

LoggerInterface
createSyslogDriver(array $config)

Create an instance of the syslog log driver.

LoggerInterface
createErrorlogDriver(array $config)

Create an instance of the "error log" log driver.

LoggerInterface
createMonologDriver(array $config)

Create an instance of any handler available in Monolog.

array
prepareHandlers(array $handlers)

Prepare the handlers for usage by Monolog.

HandlerInterface
prepareHandler(HandlerInterface $handler, array $config = [])

Prepare the handler for usage by Monolog.

FormatterInterface
formatter()

Get a Monolog formatter instance.

makeContextProcessor()

Create a wrapped context log processor.

shareContext(array $context)

Share context across channels and stacks.

array
sharedContext()

The context shared across channels and stacks.

withoutContext(array|null $keys = null)

Flush the log context on all currently resolved channels.

flushSharedContext()

Flush the shared context.

array|null
configurationFor(string|null $name)

Get the log connection configuration.

string|null
getDefaultDriver()

Get the default log driver name.

void
setDefaultDriver(UnitEnum|string $name)

Set the default log driver name.

extend(string $driver, Closure $callback)

Register a custom driver creator Closure.

void
forgetChannel(string|null $driver = null)

Unset the given channel instance.

string|null
parseDriver(string|null $driver)

Parse the driver name.

array
getChannels()

Get all of the resolved log channels.

void
emergency(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

System is unusable.

void
alert(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Action must be taken immediately.

void
critical(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Critical conditions.

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.

void
warning(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Exceptional occurrences that are not errors.

void
notice(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Normal but significant events.

void
info(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Interesting events.

void
debug(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Detailed debug information.

void
log(string $level, Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Logs with an arbitrary level.

setApplication(Application $app)

Set the application instance used by the manager.

mixed
__call(string $method, array $parameters)

Dynamically call the default driver instance.

Details

at line 552
protected string getFallbackChannelName()

Get fallback log channel name.

Return Value

string

protected Level level(array $config)

Parse the string level into a Monolog constant.

Parameters

array $config

Return Value

Level

Exceptions

InvalidArgumentException

protected Level actionLevel(array $config)

Parse the action level from the given configuration.

Parameters

array $config

Return Value

Level

Exceptions

InvalidArgumentException

protected string parseChannel(array $config)

Extract the log channel from the given configuration.

Parameters

array $config

Return Value

string

protected Closure|null bindCallbackToSelf(Closure $callback)

Bind the provided callback to the class instance.

Parameters

Closure $callback

Return Value

Closure|null

Exceptions

ReflectionException

at line 75
__construct(Application $app)

Create a new Log manager instance.

Parameters

Application $app

at line 83
LoggerInterface build(array $config)

Build an on-demand log channel.

Parameters

array $config

Return Value

LoggerInterface

at line 91
LoggerInterface stack(array $channels, string|null $channel = null)

Create a new, on-demand aggregate logger instance.

Parameters

array $channels
string|null $channel

Return Value

LoggerInterface

at line 113
LoggerInterface channel(UnitEnum|string|null $channel = null)

Get a log channel instance.

Parameters

UnitEnum|string|null $channel

Return Value

LoggerInterface

at line 121
LoggerInterface driver(UnitEnum|string|null $driver = null)

Get a log driver instance.

Parameters

UnitEnum|string|null $driver

Return Value

LoggerInterface

at line 133
protected LoggerInterface get(string|null $name, array|null $config = null)

Attempt to get the log from the local cache.

Parameters

string|null $name
array|null $config

Return Value

LoggerInterface

at line 145
protected LoggerInterface createLogger(string|null $name, array|null $config = null, bool $cache = false)

Create a configured logger, optionally retaining a named channel.

Parameters

string|null $name
array|null $config
bool $cache

Return Value

LoggerInterface

at line 182
protected Logger tap(array $config, Logger $logger)

Apply the configured taps for the logger.

Parameters

array $config
Logger $logger

Return Value

Logger

at line 196
protected array parseTap(string $tap)

Parse the given tap class string into a class name and arguments string.

Parameters

string $tap

Return Value

array

at line 204
protected LoggerInterface createEmergencyLogger()

Create an emergency log handler to avoid white screens of death.

Return Value

LoggerInterface

at line 224
protected LoggerInterface resolve(string|null $name, array $config)

Resolve the given log instance by name.

Parameters

string|null $name
array $config

Return Value

LoggerInterface

Exceptions

InvalidArgumentException

at line 242
protected mixed callCustomCreator(array $config)

Call a custom driver creator.

Parameters

array $config

Return Value

mixed

at line 250
protected LoggerInterface createCustomDriver(array $config)

Create a custom log driver instance.

Parameters

array $config

Return Value

LoggerInterface

at line 260
protected LoggerInterface createStackDriver(array $config)

Create an aggregate log driver instance.

Parameters

array $config

Return Value

LoggerInterface

at line 291
protected LoggerInterface createSingleDriver(array $config)

Create an instance of the single file log driver.

Parameters

array $config

Return Value

LoggerInterface

at line 310
protected LoggerInterface createDailyDriver(array $config)

Create an instance of the daily file log driver.

Parameters

array $config

Return Value

LoggerInterface

at line 327
protected LoggerInterface createSlackDriver(array $config)

Create an instance of the Slack log driver.

Parameters

array $config

Return Value

LoggerInterface

at line 348
protected LoggerInterface createSyslogDriver(array $config)

Create an instance of the syslog log driver.

Parameters

array $config

Return Value

LoggerInterface

at line 362
protected LoggerInterface createErrorlogDriver(array $config)

Create an instance of the "error log" log driver.

Parameters

array $config

Return Value

LoggerInterface

at line 377
protected LoggerInterface createMonologDriver(array $config)

Create an instance of any handler available in Monolog.

Parameters

array $config

Return Value

LoggerInterface

Exceptions

InvalidArgumentException

at line 435
protected array prepareHandlers(array $handlers)

Prepare the handlers for usage by Monolog.

Parameters

array $handlers

Return Value

array

at line 447
protected HandlerInterface prepareHandler(HandlerInterface $handler, array $config = [])

Prepare the handler for usage by Monolog.

Parameters

HandlerInterface $handler
array $config

Return Value

HandlerInterface

at line 475
protected FormatterInterface formatter()

Get a Monolog formatter instance.

Return Value

FormatterInterface

at line 487
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 499
LogManager shareContext(array $context)

Share context across channels and stacks.

Parameters

array $context

Return Value

LogManager

at line 515
array sharedContext()

The context shared across channels and stacks.

Return Value

array

at line 526
LogManager withoutContext(array|null $keys = null)

Flush the log context on all currently resolved channels.

Parameters

array|null $keys

Return Value

LogManager

at line 542
LogManager flushSharedContext()

Flush the shared context.

Return Value

LogManager

at line 560
protected array|null configurationFor(string|null $name)

Get the log connection configuration.

Parameters

string|null $name

Return Value

array|null

at line 568
string|null getDefaultDriver()

Get the default log driver name.

Return Value

string|null

at line 578
void setDefaultDriver(UnitEnum|string $name)

Set the default log driver name.

Boot-only. Mutates process-global config; per-request use races across coroutines.

Parameters

UnitEnum|string $name

Return Value

void

at line 595
LogManager extend(string $driver, Closure $callback)

Register a custom driver creator Closure.

Boot-only. The callback persists in the singleton's customCreators array for the worker lifetime and applies to every subsequent channel resolution.

Parameters

string $driver
Closure $callback

Return Value

LogManager

at line 616
void forgetChannel(string|null $driver = null)

Unset the given channel instance.

Boot or tests only. 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.).

Parameters

string|null $driver

Return Value

void

at line 628
protected string|null parseDriver(string|null $driver)

Parse the driver name.

Parameters

string|null $driver

Return Value

string|null

at line 646
array getChannels()

Get all of the resolved log channels.

Return Value

array

at line 654
void emergency(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

System is unusable.

Parameters

Arrayable|Jsonable|Stringable|array|string $message
array $context

Return Value

void

at line 665
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.

Parameters

Arrayable|Jsonable|Stringable|array|string $message
array $context

Return Value

void

at line 675
void critical(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Critical conditions.

Example: Application component unavailable, unexpected exception.

Parameters

Arrayable|Jsonable|Stringable|array|string $message
array $context

Return Value

void

at line 684
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.

Parameters

Arrayable|Jsonable|Stringable|array|string $message
array $context

Return Value

void

at line 695
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.

Parameters

Arrayable|Jsonable|Stringable|array|string $message
array $context

Return Value

void

at line 703
void notice(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Normal but significant events.

Parameters

Arrayable|Jsonable|Stringable|array|string $message
array $context

Return Value

void

at line 713
void info(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Interesting events.

Example: User logs in, SQL logs.

Parameters

Arrayable|Jsonable|Stringable|array|string $message
array $context

Return Value

void

at line 721
void debug(Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Detailed debug information.

Parameters

Arrayable|Jsonable|Stringable|array|string $message
array $context

Return Value

void

at line 731
void log(string $level, Arrayable|Jsonable|Stringable|array|string $message, array $context = [])

Logs with an arbitrary level.

Parameters

string $level
Arrayable|Jsonable|Stringable|array|string $message
array $context

Return Value

void

at line 745
LogManager setApplication(Application $app)

Set the application instance used by the manager.

Tests only. Swaps the singleton's Application reference; per-request use races across coroutines and breaks every concurrent request resolving services through this manager.

Parameters

Application $app

Return Value

LogManager

at line 759
mixed __call(string $method, array $parameters)

Dynamically call the default driver instance.

Parameters

string $method
array $parameters

Return Value

mixed