2016-12-25 1 views
0

私はドキュメントによると、私のサイレックス・アプリケーションでモノローグを使用しようモノローグサイレックスでアプリケーション

http://silex.sensiolabs.org/doc/master/providers/monolog.html 

は、私は以下のようapp.phpファイルにMonologServiceProviderを宣言しますcontrolerの私log.logファイルに書き込むために:

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

// In a controler 
$app['monolog']->info("test"); 
$app['monolog']->debug("test"); 
$app['monolog']->warning("test"); 
$app['monolog']->error("test"); 

私はすべてのエラーを持っていないが、それはアルで動作していませんl。

私の "test"メッセージをlog.logファイルに入れることはできません。どのようにすればいいですか?ヘルプ

+0

'realpath(__DIR__。/../ files/logs/log.log ')はあなたに何を与えるのですか?期待しているファイルの場所? –

答えて

1

ため

おかげで、私は本当にあなたが与えてくれた情報に基づいて、あなたの質問に答えることはできませんが、それは、ここではそう弾いアップ作業ログと作業サイレックスサイトの遅いニュースの日です。すべてのファイルはGithubにありますが、読みやすくするためにここで繰り返しています。

composer.json

{ 
    "require" : { 
     "silex/silex" : "^2.0", 
     "monolog/monolog" : "^1.0" 
    }, 
    "autoload" : { 
     "psr-4" : { 
      "community\\" : "src/" 
     } 
    } 
} 

パブリック/ index.phpを

<?php 

use \community\app\Application; 

require_once realpath(__DIR__ . '/../vendor/autoload.php'); 

$app = new Application(); 
$app["debug"] = true; 
$app->run(); 

SRC /アプリ/ Application.php

<?php 

namespace community\app; 

use \Silex\Application as SilexApplication; 
use Silex\Provider\MonologServiceProvider; 

class Application extends SilexApplication { 

    function __construct() { 

     parent::__construct(); 
     $this->registerServices(); 
     $this->mountControllers(); 
    } 

    function registerServices(){ 
     $this->register(new MonologServiceProvider(), [ 
      "monolog.logfile" => realpath(__DIR__ . "/../../log") . "/general.log" 
     ]); 
    } 

    function mountControllers() { 
     $this->get('/testLog', 'community\controller\TestLogController::doGet'); 
    } 

} 

SRC /コントローラ/ TestLogController.php

<?php 

namespace community\controller; 

use community\app\Application; 
use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpFoundation\Response; 

class TestLogController { 

    public function doGet(Request $request, Application $app) { 

     $app["monolog"]->info("hi!"); 

     return new Response("All good", Response::HTTP_OK); 
    } 
} 

次のように/ general.logをログに書き込む:私が気づい

[2016-12-28 13:58:05] app.INFO: hi! [] [] 

ことの一つは、まさに理想的ではないとする(ログファイルへのパスが栓であれば、その後、モノローグはそれを飲み込むように見えるということです)。これはあなたの問題かもしれません。

とにかく、上のコードをつかんで、それを使いこなしてください。うまくいけば、自分と私の違いを理解し、自分の仕事を得ることができるでしょう。

関連する問題