A Yii 2 log target for streams in URL format.
This log target allows you to log to any of the URL like targets that are
supported by PHP. Typical use cases
are docker containers that often log to STDOUT
and STDERR
, in which case
the target urls would be php://stdout
and php://stderr
respectively.
It's also possible to use an already opened resource or one of PHP's
predefined resource constants
(only available in CLI context). See the $fp
option below.
Install the package through composer:
composer require codemix/yii2-streamlog
And then add this to your application configuration:
<?php
return [
// ...
'components' => [
// ...
'log' => [
'targets' => [
[
'class' => 'codemix\streamlog\Target',
'url' => 'php://stdout',
'levels' => ['info','trace'],
'logVars' => [],
],
[
'class' => 'codemix\streamlog\Target',
'url' => 'php://stderr',
'levels' => ['error', 'warning'],
'logVars' => [],
],
],
],
- (string)
$url
the URL to use. See http://php.net/manual/en/wrappers.php for details. This gets ignored if$fp
is configured. - (resource)
$fp
an open and writeable resource. This can also be one of PHP's predefined resources likeSTDOUT
orSTDERR
, which are available in CLI context. (Since 1.2.0) - (string|null)
$replaceNewline
a string that should replace all newline characters in a log message. Default istnull
for no replacement. (Since 1.1.0) - (bool)
$disableTimestamp
whether to omit the timestamp prefix. The default isfalse
which will prepend every message with a timestamp generated byyii\log\Target::getTime()
. (Since 1.3.0) - (string)
$prefixString
a string that will be prefixed to every message at the first position (even before the timestamp - if not disabled). Default is an empty string. (Since 1.3.0) - (bool)
$enableLocking
whether enable locking withflock()
on the target. Note, that this is not supported by all stream types. Default isfalse
. (Since 1.3.0)