2017-04-01 2 views
0

저는 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(); 
?> 

나는 또한 독백으로 시도했지만 나는 그것이 작동하지 않았다.

내가 정말로 원하는 것은 같은 파일에 경고, 디버그, 정보가 포함 된 일별 로그를 저장하는 것입니다. 매일 파일을 변경합니다.

+0

사용하려는 슬림 버전은 무엇입니까? 당신은 3과 2의 슬림 코드를 결합하려고 시도하는 것 같습니다. – meun5

+0

로그 파일은 웹 서버에서 쓸 수 있습니까? –

+0

3.8을 사용하고 있습니다. 나는 그것이 최신 것 같아요. – user1298272

답변

2

slim-skeleton 응용 프로그램은 monolog를 통합하는 방법을 보여줍니다.

  1. 디 용기와 로거 등록, 표준 출력

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

로그 아웃을 출력하면 이렇게 '

$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; 
}; 
  • 이 폐쇄에서 사용을 아파치 오류 로그에 또는 터미널에 내장 된 PHP 서버를 사용하고 있는지 확인하십시오.

  • +1

    고마워!. 마침내 나는이 일을 얻었다. – user1298272

    관련 문제