A Yii 2 log target for streams in URL format

1.3.1 2020-03-26 13:23 UTC

This package is auto-updated.

Last update: 2024-04-29 02:43:25 UTC


Latest Stable Version Total Downloads License

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.

Installation and Configuration

Install the package through composer:

composer require codemix/yii2-streamlog

And then add this to your application configuration:

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' => [],

Configuration Options

  • (string) $url the URL to use. See 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 like STDOUT or STDERR, 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 ist null for no replacement. (Since 1.1.0)
  • (bool) $disableTimestamp whether to omit the timestamp prefix. The default is false which will prepend every message with a timestamp generated by yii\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 with flock() on the target. Note, that this is not supported by all stream types. Default is false. (Since 1.3.0)