在Silex应用程序中使用Monolog跟踪用户名的跟踪

时间:2018-02-21 08:15:30

标签: php logging silex username monolog

我有一个Silex应用程序,我已经设置了Monolog记录器服务。在调试模式下,日志类似于(INFO级别):

[2018-02-21 09:08:26] appName.INFO: > GET /customers [] []
[2018-02-21 09:08:27] appName.INFO: < 200 [] []

我想通过在日志中写下日期旁边的用户名来保留生成这些请求的用户的跟踪。

有没有办法自定义Monolog模板来实现它?

2 个答案:

答案 0 :(得分:1)

当用户使用请求时,只需执行此操作:

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);

您还期待什么?

答案 1 :(得分:0)

您正在追踪log processor & formatter。使用自定义日志处理器将用户名添加到日志记录中,然后使用格式化程序将该值包含在日志字符串行中。

或者您可以直接将用户名添加到日志的上下文中,如果您将:

$logger->log('User logged in', ['username' => $username]);