A little log utility you can use with Kirby CMS. It's a wrapper around KLogger.
- unzip master.zip as folder
site/plugins/kirby-log
or git submodule add https://github.com/bvdputte/kirby-log.git site/plugins/kirby-log
orcomposer require bvdputte/kirby-log
By default, all kirby system exceptions are logged to site/logs/kirbylog.log
.
(Can be disabled via 'bvdputte.kirbylog.exceptionlog' => false
in config.php.
$site->log("message", "level" /* optional */, "appendcontext" /* optional */);
$site->log("This text will be added to the default log");
- Output:
[2018-08-06 17:26:50.376956] [info] This text will be added to the default log
. - Logfile:
/site/logs/kirbylog.log
💡 The logfile will be created automatically when not existant.
As defined by PSR-3, you can pass the wanted loglevel as the second argument in the ->log()
method:
$site->log("My message", "error");
- Output:
[2018-08-06 17:26:50.372955] [error] My message
- Logfile:
/site/logs/kirbylog.log
💡 By default the loglevel is info
. This can be set in the options.
AppendContext can be interesting to include variables to your log.
$arr = ["foo", "bar", "baz"];
$site->log("My message", "debug", $arr);
- Output:
[2018-08-06 17:26:50.373625] [debug] My message
0: 'foo'
1: 'bar'
2: 'baz'
- Logfile:
/site/logs/kirbylog.log
API:
$site->logger("logname", "options" /* optional */, "defaultlevel" /* optional */)->log("message", "level" /* optional */, "appendcontext" /* optional */);
$site->logger("my-own-logfile.log")->log("This event will be added to my custom named logfile");
- Output:
[2018-08-06 17:26:50.376956] [info] This event will be added to my custom named logfile
. - Logfile:
/site/logs/my-own-logfile.log
Several extended options are available:
- dateFormat: use PHP syntax
- logFormat: formatting options
- appendContext: Enable/Disable
Pass them as follows to the logger using an associative array:
$options = [
'dateFormat' => 'Y-m-d G:i:s.u',
'logFormat' => false,
'appendContext' => true,
];
$site->logger("infolog.log", $options)->log("Info about something", "info");
More info on KLogger docs.
- The default location where logfiles will be saved is the Kirby default logs location:
/site/logs/
. You can change this locaction via the custom folder setup and then change the logs root. - The default logname is
kirbylog.log
. Change it inconfig.php
via'bvdputte.kirbylog.logname' => 'custom-logname.log'
. - The default loglevel is
info
. Change it inconfig.php
via'bvdputte.kirbylog.defaultloglevel' => 'debug'
. Be sure to use a valid PSR-3 loglevel. 'bvdputte.kirbylog.rotateLogs' => true
: log rotation is on by default when logs get bigger then 10MB. Set to false to disable logrotation'bvdputte.kirbylog.rotateLogSizeThreshold' => '10MB' // can be in 'B', 'KB', 'MB' or 'GB'
: the size-based threshold for logrotation. Defaults to 10MB
This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please create a new issue.
It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.