Skip to content

Instantly share code, notes, and snippets.

@timkelty
Last active January 31, 2024 18:16
Show Gist options
  • Save timkelty/c0530983c3fb450c15a5f136fb388d3d to your computer and use it in GitHub Desktop.
Save timkelty/c0530983c3fb450c15a5f136fb388d3d to your computer and use it in GitHub Desktop.
Craft 4 Logging Examples
<?php
use craft\helpers\App;
use craft\log\Dispatcher;
use craft\log\MonologTarget;
use Illuminate\Support\Collection;
use Monolog\Formatter\LineFormatter;
use Psr\Log\LogLevel;
use yii\i18n\PhpMessageSource;
use yii\web\HttpException;
return [
'components' => [
'log' => [
'monologTargetConfig' => [
// Only log context in `devMode`
'logContext' => App::devMode(),
// Only log warning and up
'level' => LogLevel::WARNING,
// Force single-line logs, even in `devMode`
'allowLineBreaks' => false,
// Override message filtering (eg don't log any 40*)
// By default, `PhpMessageSource:*` and `HttpException:404` are filtered
'except' => [
PhpMessageSource::class . ':*',
HttpException::class . ':40*',
'custom-module'
],
// Change the default log formatter and date format
'formatter' => new LineFormatter(
format: "%datetime% [%level_name%][%context.category%] %message% %context% %extra%\n",
dateFormat: DATE_ATOM
),
],
'targets' => [
// Add a traditional Yii file target
[
'class' => \yii\log\FileTarget::class,
'logFile' => '@storage/logs/custom-module.log',
'levels' => App::devMode() ? ['info', 'warning', 'error'] : ['warning', 'error'],
'categories' => ['custom-module'],
],
// Add a Monolog target
[
'class' => \craft\log\MonologTarget::class,
'name' => 'custom-module',
'extractExceptionTrace' => !App::devMode(),
'allowLineBreaks' => App::devMode(),
'level' => App::devMode() ? LogLevel::INFO : LogLevel::WARNING,
'categories' => ['custom-module'],
],
]
],
// Add handlers to existing Monolog loggers
'log' => static function() {
$dispatcher = new Dispatcher();
Collection::make($dispatcher->targets)
->each(function(MonologTarget $target) {
$logtailToken = App::env('LOGTAIL_TOKEN');
$bugsnagApiKey = App::env('BUGSNAG_API_KEY');
if ($logtailToken) {
$target->getLogger()->pushHandler((new Logtail\Monolog\LogtailHandler($logtailToken)));
}
if ($bugsnagApiKey) {
$bugsnagClient = Bugsnag\Client::make($bugsnagApiKey);
$bugsnagClient->setReleaseStage(App::env('CRAFT_ENVIRONMENT'));
$target->getLogger()->pushHandler((new MeadSteve\MonoSnag\BugsnagHandler($bugsnagClient)));
}
});
return $dispatcher;
},
// Replace default log handler
'log' => static function() {
$dispatcher = new Dispatcher();
Collection::make($dispatcher->targets)
->each(function(MonologTarget $target) {
$target->getLogger()
->setHandlers([
(new \Monolog\Handler\StreamHandler(
App::parseEnv(sprintf('@storage/logs/%s.log', $target->name)),
$target->level,
filePermission: Craft::$app->getConfig()->getGeneral()->defaultFileMode,
))
]);
});
return $dispatcher;
},
],
];

Craft 3 log output

  • devMode=false,
  • storeUserIps=true
  • contains a Craft::warning
  • logged-in
2022-04-15 09:41:03 [172.18.0.1][1][-][warning][application] Some warning…
2022-04-15 09:41:02 [172.18.0.1][1][-][info][application] $_GET = []

$_POST = []
[…truncated]

  • devMode=true
  • storeUserIps=true
  • contains a Craft::warning
  • logged-out
2022-04-15 10:02:10 [172.18.0.1][-][-][info][yii\db\Connection::open] Opening DB connection: pgsql:host=postgres-13-5432.database.nitro;dbname=craft3_dev;port=5432
2022-04-15 10:02:10 [172.18.0.1][-][-][profile begin][yii\db\Connection::open] Opening DB connection: pgsql:host=postgres-13-5432.database.nitro;dbname=craft3_dev;port=5432
2022-04-15 10:02:10 [172.18.0.1][-][-][profile end][yii\db\Connection::open] Opening DB connection: pgsql:host=postgres-13-5432.database.nitro;dbname=craft3_dev;port=5432
2022-04-15 10:02:10 [172.18.0.1][-][-][info][yii\db\Command::query] SELECT *
FROM "info"
[…truncated]
2022-04-15 10:02:10 [172.18.0.1][-][-][profile begin][Twig template] render template:
2022-04-15 10:02:10 [172.18.0.1][-][-][profile begin][Twig template] render template: _layout
2022-04-15 10:02:10 [172.18.0.1][-][-][profile begin][Twig template] render block: main
2022-04-15 10:02:10 [172.18.0.1][-][-][profile end][Twig template] render block: main
2022-04-15 10:02:10 [172.18.0.1][-][-][profile end][Twig template] render template: _layout
2022-04-15 10:02:10 [172.18.0.1][-][-][profile end][Twig template] render template:
2022-04-15 10:02:10 [172.18.0.1][-][-][info][application] $_GET = []

$_POST = []
[…truncated]

  • devMode=false
  • storeUserIps=true
  • contains an uncaught exception
  • logged-out
2022-04-15 10:09:43 [172.18.0.1][-][-][warning][application] Some warning…
2022-04-15 10:09:43 [172.18.0.1][-][-][error][yii\base\Exception] yii\base\Exception: Some exception… in /app/modules/Module.php:43
Stack trace:
#0 /app/vendor/yiisoft/yii2/base/BaseObject.php(109): modules\Module->init()
[…truncated]
#21 {main}
2022-04-15 10:09:43 [172.18.0.1][-][-][info][application] $_GET = []

$_POST = []
[…truncated]

  • devMode=true
  • storeUserIps=true
  • contains an uncaught exception
  • logged-out
2022-04-15 10:03:54 [172.18.0.1][-][-][info][yii\db\Connection::open] Opening DB connection: pgsql:host=postgres-13-5432.database.nitro;dbname=craft3_dev;port=5432
2022-04-15 10:03:54 [172.18.0.1][-][-][profile begin][yii\db\Connection::open] Opening DB connection: pgsql:host=postgres-13-5432.database.nitro;dbname=craft3_dev;port=5432
2022-04-15 10:03:54 [172.18.0.1][-][-][profile end][yii\db\Connection::open] Opening DB connection: pgsql:host=postgres-13-5432.database.nitro;dbname=craft3_dev;port=5432
2022-04-15 10:03:54 [172.18.0.1][-][-][info][yii\db\Command::query] SELECT *
FROM "info"
[…truncated]
2022-04-15 10:03:54 [172.18.0.1][-][-][trace][yii\base\Application::bootstrap] Bootstrap with yii\shell\Bootstrap::bootstrap()
2022-04-15 10:03:54 [172.18.0.1][-][-][trace][yii\base\Module::getModule] Loading module: my-module
2022-04-15 10:03:54 [172.18.0.1][-][-][warning][application] Some warning…
2022-04-15 10:03:54 [172.18.0.1][-][-][error][yii\base\Exception] yii\base\Exception: Some exception… in /app/modules/Module.php:43
Stack trace:
#0 /app/vendor/yiisoft/yii2/base/BaseObject.php(109): modules\Module->init()
[…truncated]
#21 {main}
2022-04-15 10:03:54 [172.18.0.1][-][-][trace][yii\base\View::renderFile] Rendering view file: /app/vendor/yiisoft/yii2/views/errorHandler/exception.php
2022-04-15 10:03:54 [172.18.0.1][-][-][info][application] $_GET = []

$_POST = []
[…truncated]

Craft 4 log output

  • devMode=false,
  • storeUserIps=true
  • contains a Craft::warning
  • logged-in
[2022-04-15T16:57:54+00:00] web.WARNING: Some warning… {"trace":[],"memory":13579752,"category":"application"}
[2022-04-15T16:57:54+00:00] web.WARNING: Request context  {"ip":"172.18.0.1","userId":1,"vars":{"_GET":[],"_POST":[],"_COOKIE":{"1031b8c41dfff97a311a7ac99863bdc5_username":"2756d05ef7521bdc1dac02da066e1658e3e16d6acc7360cfc6256cb1cec311cca:2:{i:0;s:41:\"1031b8c41dfff97a311a7ac99863bdc5_username\";i:1;s:5:\"admin\";}","__stripe_mid":"ddd01b0a-8220-4d00-a2f4-96bb8cb8e6b6bec28d","CraftSessionId":"if0uq3uj36d8ek6n5o9eak2l04","1031b8c41dfff97a311a7ac99863bdc5_identity":"8ddb6a5ce28f3fb2d23567df9228ce31614d6b19572c4f60db3b4b5eae78f2a3a:2:{i:0;s:41:\"1031b8c41dfff97a311a7ac99863bdc5_identity\";i:1;s:159:\"[1,\"[\\\"QwoFhu6pBsTvSOkCXqNvu2_cIr16fde6AK1DHP7GLiyXmnv7qY5BscDi8sl_QRT9z2uGh051J7r9IkSawusrx-ijCLZWZ6bHB433\\\",null,\\\"d9667159e600aea00a68fcc215cc4f6e\\\"]\",3600]\";}","CRAFT_CSRF_TOKEN":"••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••"},"_FILES":[],"_SERVER":{"PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","HOSTNAME":"4.craft.test","PHP_DISPLAY_ERRORS":"on","PHP_MEMORY_LIMIT":"512M","PHP_MAX_EXECUTION_TIME":"5000","PHP_UPLOAD_MAX_FILESIZE":"512M","PHP_MAX_INPUT_VARS":"5000","PHP_POST_MAX_SIZE":"512M","PHP_OPCACHE_ENABLE":"0","PHP_OPCACHE_REVALIDATE_FREQ":"0","PHP_OPCACHE_VALIDATE_TIMESTAMPS":"0","XDEBUG_SESSION":"PHPSTORM","PHP_IDE_CONFIG":"serverName=4.craft.test","XDEBUG_CONFIG":"client_host=host.docker.internal client_port=9003","XDEBUG_MODE":"develop,debug","IMAGE_USER":"nitro","PHP_VERSION":"8.0","NVM_VERSION":"0.38.0","DEBIAN_FRONTEND":"noninteractive","HOME":"/home/nitro","LC_CTYPE":"C.UTF-8","SUPERVISOR_ENABLED":"1","SUPERVISOR_PROCESS_NAME":"php-fpm","SUPERVISOR_GROUP_NAME":"php-fpm","USER":"nitro","HTTP_X_FORWARDED_PROTO":"https","HTTP_X_FORWARDED_FOR":"172.18.0.1","HTTP_UPGRADE_INSECURE_REQUESTS":"1","HTTP_SEC_FETCH_USER":"?1","HTTP_SEC_FETCH_SITE":"none","HTTP_SEC_FETCH_MODE":"navigate","HTTP_SEC_FETCH_DEST":"document","HTTP_SEC_CH_UA_PLATFORM":"\"macOS\"","HTTP_SEC_CH_UA_MOBILE":"?0","HTTP_SEC_CH_UA":"\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"100\", \"Google Chrome\";v=\"100\"","HTTP_COOKIE":"1031b8c41dfff97a311a7ac99863bdc5_username=2756d05ef7521bdc1dac02da066e1658e3e16d6acc7360cfc6256cb1cec311cca%3A2%3A%7Bi%3A0%3Bs%3A41%3A%221031b8c41dfff97a311a7ac99863bdc5_username%22%3Bi%3A1%3Bs%3A5%3A%22admin%22%3B%7D; __stripe_mid=ddd01b0a-8220-4d00-a2f4-96bb8cb8e6b6bec28d; CraftSessionId=if0uq3uj36d8ek6n5o9eak2l04; 1031b8c41dfff97a311a7ac99863bdc5_identity=8ddb6a5ce28f3fb2d23567df9228ce31614d6b19572c4f60db3b4b5eae78f2a3a%3A2%3A%7Bi%3A0%3Bs%3A41%3A%221031b8c41dfff97a311a7ac99863bdc5_identity%22%3Bi%3A1%3Bs%3A159%3A%22%5B1%2C%22%5B%5C%22QwoFhu6pBsTvSOkCXqNvu2_cIr16fde6AK1DHP7GLiyXmnv7qY5BscDi8sl_QRT9z2uGh051J7r9IkSawusrx-ijCLZWZ6bHB433%5C%22%2Cnull%2C%5C%22d9667159e600aea00a68fcc215cc4f6e%5C%22%5D%22%2C3600%5D%22%3B%7D; CRAFT_CSRF_TOKEN=9779283c4e1eba389e1017adc948f01af0a22c04a007ab820e41e540b501e74ca%3A2%3A%7Bi%3A0%3Bs%3A16%3A%22CRAFT_CSRF_TOKEN%22%3Bi%3A1%3Bs%3A147%3A%22XBmAAP6UFlrOfMEOHl9coZnXbJKENF2LtqdsItB7%7C11c6df0a319dfd02ab5a74652e290bf2aa260e6423b903fc38fee0c76e1dbc06XBmAAP6UFlrOfMEOHl9coZnXbJKENF2LtqdsItB7%7C1%22%3B%7D","HTTP_CACHE_CONTROL":"max-age=0","HTTP_ACCEPT_LANGUAGE":"en-US,en;q=0.9","HTTP_ACCEPT_ENCODING":"gzip, deflate, br","HTTP_ACCEPT":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","HTTP_USER_AGENT":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36","HTTP_HOST":"4.craft.test","SCRIPT_FILENAME":"/app/web/index.php","REDIRECT_STATUS":"200","SERVER_NAME":"","SERVER_PORT":"80","SERVER_ADDR":"172.18.0.12","REMOTE_USER":"","REMOTE_PORT":"46122","REMOTE_ADDR":"172.18.0.19","SERVER_SOFTWARE":"nginx/1.18.0","GATEWAY_INTERFACE":"CGI/1.1","REQUEST_SCHEME":"http","SERVER_PROTOCOL":"HTTP/1.1","DOCUMENT_ROOT":"/app/web","DOCUMENT_URI":"/index.php","REQUEST_URI":"/","SCRIPT_NAME":"/index.php","CONTENT_LENGTH":"","CONTENT_TYPE":"","REQUEST_METHOD":"GET","QUERY_STRING":"","FCGI_ROLE":"RESPONDER","PHP_SELF":"/index.php","REQUEST_TIME_FLOAT":1650041873.980016,"REQUEST_TIME":1650041873,"DEFAULT_SITE_URL":"https://4.craft.test/","CRAFT_ENVIRONMENT":"dev","CRAFT_SECURITY_KEY":"•••","CRAFT_DEV_MODE":"0","CRAFT_DB_URL":"","CRAFT_DB_DATABASE":"craft4_dev","CRAFT_DB_USER":"nitro","CRAFT_DB_PASSWORD":"•••••","CRAFT_DB_DRIVER":"pgsql","CRAFT_DB_SCHEMA":"public","CRAFT_DB_SERVER":"postgres-13-5432.database.nitro"},"_SESSION":{"bd62416aa8538ede709019a5e113eea5__flash":[],"1031b8c41dfff97a311a7ac99863bdc5__token":"••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••","1031b8c41dfff97a311a7ac99863bdc5__id":1,"__authKey":"••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••","1031b8c41dfff97a311a7ac99863bdc5__expire":1650045474,"__duration":3600}}}

  • devMode=true
  • storeUserIps=true
  • logged-out
[2022-04-15T17:00:11+00:00] web.INFO: Opening DB connection: pgsql:host=postgres-13-5432.database.nitro;dbname=craft4_dev;port=5432 {"trace":[],"memory":9646256,"category":"yii\\db\\Connection::open"}
[2022-04-15T17:00:11+00:00] web.WARNING: Some warning… {"trace":[],"memory":13577888,"category":"application"}
[2022-04-15T17:00:11+00:00] web.INFO: Request context
$_GET = []

$_POST = []
[…truncated] {"ip":"172.18.0.1"}

  • devMode=false
  • contains an uncaught exception
  • storeUserIps=true
  • logged-out
[2022-04-15T17:08:13+00:00] web.WARNING: Some warning… {"trace":[],"memory":13575168,"category":"application"}
[2022-04-15T17:08:13+00:00] web.ERROR: Some exception… {"trace":["#0 /app/vendor/yiisoft/yii2/base/BaseObject.php(109): modules\\Module->init()","#1 /app/vendor/yiisoft/yii2/base/Module.php(161): yii\\base\\BaseObject->__construct()","#2 [internal function]: yii\\base\\Module->__construct()","#3 /app/vendor/yiisoft/yii2/di/Container.php(411): ReflectionClass->newInstanceArgs()","#4 /app/vendor/yiisoft/yii2/di/Container.php(170): yii\\di\\Container->build()","#5 /app/vendor/yiisoft/yii2/BaseYii.php(345): yii\\di\\Container->get()","#6 /app/vendor/yiisoft/yii2/base/Module.php(445): yii\\BaseYii::createObject()","#7 /app/vendor/yiisoft/yii2/base/Application.php(313): yii\\base\\Module->getModule()","#8 /app/submodules/craftcms/src/web/Application.php(122): yii\\base\\Application->bootstrap()","#9 /app/vendor/yiisoft/yii2/base/Application.php(271): craft\\web\\Application->bootstrap()","#10 /app/submodules/craftcms/src/web/Application.php(99): yii\\base\\Application->init()","#11 /app/vendor/yiisoft/yii2/base/BaseObject.php(109): craft\\web\\Application->init()","#12 /app/vendor/yiisoft/yii2/base/Application.php(204): yii\\base\\BaseObject->__construct()","#13 [internal function]: yii\\base\\Application->__construct()","#14 /app/vendor/yiisoft/yii2/di/Container.php(419): ReflectionClass->newInstanceArgs()","#15 /app/vendor/yiisoft/yii2/di/Container.php(170): yii\\di\\Container->build()","#16 /app/vendor/yiisoft/yii2/BaseYii.php(365): yii\\di\\Container->get()","#17 /app/submodules/craftcms/src/Craft.php(53): yii\\BaseYii::createObject()","#18 /app/submodules/craftcms/bootstrap/bootstrap.php(239): Craft::createObject()","#19 /app/submodules/craftcms/bootstrap/web.php(40): require('...')","#20 /app/web/index.php(11): require('...')","#21 {main}"],"memory":13613592,"category":"yii\\base\\Exception","exception":"[object] (yii\\base\\Exception(code: 0): Some exception… at /app/modules/Module.php:41)"}
[2022-04-15T17:08:13+00:00] web.WARNING: Request context  {"ip":"172.18.0.1","vars":{"_GET":[],"_POST":[],"_COOKIE":{"CRAFT_CSRF_TOKEN":"••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••"},"_FILES":[],"_SERVER":{"PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","HOSTNAME":"4.craft.test","PHP_DISPLAY_ERRORS":"on","PHP_MEMORY_LIMIT":"512M","PHP_MAX_EXECUTION_TIME":"5000","PHP_UPLOAD_MAX_FILESIZE":"512M","PHP_MAX_INPUT_VARS":"5000","PHP_POST_MAX_SIZE":"512M","PHP_OPCACHE_ENABLE":"0","PHP_OPCACHE_REVALIDATE_FREQ":"0","PHP_OPCACHE_VALIDATE_TIMESTAMPS":"0","XDEBUG_SESSION":"PHPSTORM","PHP_IDE_CONFIG":"serverName=4.craft.test","XDEBUG_CONFIG":"client_host=host.docker.internal client_port=9003","XDEBUG_MODE":"develop,debug","IMAGE_USER":"nitro","PHP_VERSION":"8.0","NVM_VERSION":"0.38.0","DEBIAN_FRONTEND":"noninteractive","HOME":"/home/nitro","LC_CTYPE":"C.UTF-8","SUPERVISOR_ENABLED":"1","SUPERVISOR_PROCESS_NAME":"php-fpm","SUPERVISOR_GROUP_NAME":"php-fpm","USER":"nitro","HTTP_X_FORWARDED_PROTO":"https","HTTP_X_FORWARDED_FOR":"172.18.0.1","HTTP_UPGRADE_INSECURE_REQUESTS":"1","HTTP_SEC_FETCH_USER":"?1","HTTP_SEC_FETCH_SITE":"none","HTTP_SEC_FETCH_MODE":"navigate","HTTP_SEC_FETCH_DEST":"document","HTTP_SEC_CH_UA_PLATFORM":"\"macOS\"","HTTP_SEC_CH_UA_MOBILE":"?0","HTTP_SEC_CH_UA":"\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"100\", \"Google Chrome\";v=\"100\"","HTTP_COOKIE":"CRAFT_CSRF_TOKEN=fec11bc25f2359dc051360e7b239aca91ff7ee976845c9d0ddc129953bace6b0a%3A2%3A%7Bi%3A0%3Bs%3A16%3A%22CRAFT_CSRF_TOKEN%22%3Bi%3A1%3Bs%3A40%3A%22V80G_-Yjg6umMbuYII_u-ApXyJDnUEQV1DQi5eSQ%22%3B%7D","HTTP_CACHE_CONTROL":"max-age=0","HTTP_ACCEPT_LANGUAGE":"en-US,en;q=0.9","HTTP_ACCEPT_ENCODING":"gzip, deflate, br","HTTP_ACCEPT":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","HTTP_USER_AGENT":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36","HTTP_HOST":"4.craft.test","SCRIPT_FILENAME":"/app/web/index.php","REDIRECT_STATUS":"200","SERVER_NAME":"","SERVER_PORT":"80","SERVER_ADDR":"172.18.0.12","REMOTE_USER":"","REMOTE_PORT":"46390","REMOTE_ADDR":"172.18.0.19","SERVER_SOFTWARE":"nginx/1.18.0","GATEWAY_INTERFACE":"CGI/1.1","REQUEST_SCHEME":"http","SERVER_PROTOCOL":"HTTP/1.1","DOCUMENT_ROOT":"/app/web","DOCUMENT_URI":"/index.php","REQUEST_URI":"/","SCRIPT_NAME":"/index.php","CONTENT_LENGTH":"","CONTENT_TYPE":"","REQUEST_METHOD":"GET","QUERY_STRING":"","FCGI_ROLE":"RESPONDER","PHP_SELF":"/index.php","REQUEST_TIME_FLOAT":1650042492.316109,"REQUEST_TIME":1650042492,"DEFAULT_SITE_URL":"https://4.craft.test/","CRAFT_ENVIRONMENT":"dev","CRAFT_SECURITY_KEY":"•••","CRAFT_DEV_MODE":"0","CRAFT_STORE_USER_IPS":"1","CRAFT_DB_URL":"","CRAFT_DB_DATABASE":"craft4_dev","CRAFT_DB_USER":"nitro","CRAFT_DB_PASSWORD":"•••••","CRAFT_DB_DRIVER":"pgsql","CRAFT_DB_SCHEMA":"public","CRAFT_DB_SERVER":"postgres-13-5432.database.nitro"}}}

  • devMode=true
  • contains an uncaught exception
  • storeUserIps=true
  • logged-out
[2022-04-15T17:06:54+00:00] web.INFO: Opening DB connection: pgsql:host=postgres-13-5432.database.nitro;dbname=craft4_dev;port=5432 {"trace":[],"memory":9648768,"category":"yii\\db\\Connection::open"}
[2022-04-15T17:06:54+00:00] web.WARNING: Some warning… {"trace":[],"memory":13580840,"category":"application"}
[2022-04-15T17:06:54+00:00] web.ERROR: yii\base\Exception: Some exception… in /app/modules/Module.php:41
Stack trace:
#0 /app/vendor/yiisoft/yii2/base/BaseObject.php(109): modules\Module->init()
[…truncated]
#21 {main} {"trace":[],"memory":13618016,"category":"yii\\base\\Exception","exception":"[object] (yii\\base\\Exception(code: 0): Some exception… at /app/modules/Module.php:41)"}
[2022-04-15T17:06:54+00:00] web.INFO: Request context
$_GET = []
[…truncated] {"ip":"172.18.0.1"}
<?php
use samdark\log\PsrMessage;
// Traditional Yii2 Logging
Craft::error('Some error…', 'Some category (logged as context.category)');
// PSR-3 Logging, with context
Craft::error(new PsrMessage(
'Some error, {psr3Replacement}',
[
'some' => 'context',
'to' => ['be', 'serialized'],
'psr3Replacement' => 'https://www.php-fig.org/psr/psr-3/'
],
));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment