我是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();
?>
Run Code Online (Sandbox Code Playgroud)
我也尝试了独白,但没有成功。
<?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();
Run Code Online (Sandbox Code Playgroud)
我真正想要的是在同一个文件中包含警告,调试,信息...的每日日志。每天更改文件。
该超薄骨架应用程序展示如何整合独白。
使用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;
};
Run Code Online (Sandbox Code Playgroud)在关闭时使用它:
$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;
});
Run Code Online (Sandbox Code Playgroud)日志将输出到stdout,因此您将在apache错误日志中看到,或者如果您使用的是内置PHP服务器,则将在终端中看到。
| 归档时间: |
|
| 查看次数: |
5448 次 |
| 最近记录: |