gpt4 book ai didi

php - 将日志文件添加到 slim 框架

转载 作者:行者123 更新时间:2023-12-04 05:27:08 25 4
gpt4 key购买 nike

我对 Slim 完全陌生。过去 3-4 年我一直在使用 php,但我总是从头开始。我想学习这个框架来完成一些我必须做的休息服务。

我遵循了精简网页上的教程来让一个简单的休息服务正常工作,但我想添加一个日志系统来查看当出现问题或发生什么情况时发生了什么。

这是我所知道的:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require '../Slim/Slim.php';

\Slim\Slim::requisterAutoloader();

$application = new \Slim\App();
$logger = $application->log;
$logger->setEnabled(true);
$logger->setLevel(\Slim\Log::DEBUG);

$application->get(
'/hello/user',
function ()
{
GLOBAL $logger;
$logger->info("starting the handling function");
echo "<data>response</data>";
$logger->info("ending handling function");
});

$application->run();
?>

我也尝试过使用独白,但没有成功。

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

require '../vendor/autoload.php';


$logger = new \Flynsarmy\SlimMonolog\Log\MonologWriter(array(
'handlers' => array(
new \Monolog\Handler\StreamHandler('./logs/'.date('Y-m-d').'.log'),
),
));

$app = new Slim\App(array(
'log.writer' => $logger,
));


$app->get('/hello/{name}', function (Request $request, Response $response){
$name = $request->getAttribute('name');
$response->getBody()->write("Hello, $name");
//$app->log->writer("hola");
$this->logger->info("Slim-Skeleton '/' route");
return $response;
});
$app->run();

我真正想要的是在同一个文件中包含包含警告、调试、信息...的每日日志。每天更改文件。

最佳答案

slim-skeleton应用程序展示了如何集成独白。

  1. 向 DI 容器注册记录器:

    $container['logger'] = function ($c) {
    $settings = $c->get('settings')['logger'];
    $logger = new \Monolog\Logger('test-app');
    $logger->pushHandler(new Monolog\Handler\StreamHandler('php://stdout', \Monolog\Logger::DEBUG));
    return $logger;
    };
  2. 在你的闭包中使用它:

    $app->get('/hello/{name}', function (Request $request, Response $response){
    $name = $request->getAttribute('name');
    $response->getBody()->write("Hello, $name");
    $this->get('logger')->info("Slim-Skeleton '/' route");
    return $response;
    });

日志将输出到 stdout,因此您将在 apache 错误日志中看到 ,或者如果您使用内置 PHP 服务器,则在终端中看到 。

关于php - 将日志文件添加到 slim 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43160670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com