【问题标题】:ZF2 custom logfile, set usernameZF2 自定义日志文件,设置用户名
【发布时间】:2014-12-01 10:15:19
【问题描述】:

如何制作自定义日志(使用 Zend2)并为每个日志事件设置用户名。 这是我正在尝试的示例:

public function log( )
{

    $log_file = 'path/to/logfile.log';

    $format = '%timestamp% %priorityName% (%username%) %message%';
    $formatter = new Zend\Log\Formatter\Simple($format);
    $formatter->setDateTimeFormat('H:i:s');

    $formatter->format( array('username'=> SET_USER_NAME ));

    $logWriter = new LogWriter($log_file);
    $logWriter->setFormatter($formatter);

    $logger = new Logger;
    $logger->addWriter( $logWriter );

    return $logger;
}

我尝试了以下

$this->log()->info(" Log message " );

结果是:

11:33:54 INFO (%username%) Log message

谢谢!

【问题讨论】:

    标签: php zend-framework2 zend-log


    【解决方案1】:

    您可以使用third parameter of log method extra - 额外数据数组,这些数据被转换为 json 并由格式化程序自动添加到日志消息中 (Zend\Log\Formatter\Simple::format)

    简单示例:

    $writer = new \Zend\Log\Writer\Stream('php://output');
    $logger = new \Zend\Log\Logger();
    $logger->addWriter($writer);
    
    $logger->info('Informational message', ['user' => 'administrator']);
    

    输出如下:

    2014-12-01T13:00:00+00:00 INFO (6): Informational message {"user":"administrator"} 
    

    【讨论】:

      猜你喜欢
      • 2012-04-15
      • 2018-10-22
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      相关资源
      最近更新 更多