在 Silex 应用程序中使用 Monolog 跟踪用户名
Keep a trace of the username with Monolog in a Silex app
我有一个 Silex 应用程序,我已经设置了一个 Monolog 记录器服务。在调试模式下,日志类似于(信息级别):
[2018-02-21 09:08:26] appName.INFO: > GET /customers [] []
[2018-02-21 09:08:27] appName.INFO: < 200 [] []
我想跟踪生成这些请求的用户,方法是在日志中写入用户名,例如在日期旁边。
有没有办法自定义 Monolog 模板来实现?
当用户使用请求时简单地执行此操作:
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// create a log channel
$logger = new Logger('name');
$logger->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
//Add following lines
$username = 'foobar'; //Ofcourse your user's username
$logger->info($username);
你还期待什么?
您正在寻找 log processor & formatter。使用自定义日志处理器将用户名添加到日志记录中,然后使用格式化程序将该值包含在日志字符串行中。
或者如果您愿意,您可以简单地将用户名添加到日志的上下文中:
$logger->log('User logged in', ['username' => $username]);
我有一个 Silex 应用程序,我已经设置了一个 Monolog 记录器服务。在调试模式下,日志类似于(信息级别):
[2018-02-21 09:08:26] appName.INFO: > GET /customers [] []
[2018-02-21 09:08:27] appName.INFO: < 200 [] []
我想跟踪生成这些请求的用户,方法是在日志中写入用户名,例如在日期旁边。
有没有办法自定义 Monolog 模板来实现?
当用户使用请求时简单地执行此操作:
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// create a log channel
$logger = new Logger('name');
$logger->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
//Add following lines
$username = 'foobar'; //Ofcourse your user's username
$logger->info($username);
你还期待什么?
您正在寻找 log processor & formatter。使用自定义日志处理器将用户名添加到日志记录中,然后使用格式化程序将该值包含在日志字符串行中。
或者如果您愿意,您可以简单地将用户名添加到日志的上下文中:
$logger->log('User logged in', ['username' => $username]);