根据文档
,我尝试在我的Silex应用程序中使用Monologhttp://silex.sensiolabs.org/doc/master/providers/monolog.html
我在app.php文件中声明了MonologServiceProvider,如下所示:
use Silex\Provider\MonologServiceProvider;
$app->register(new MonologServiceProvider(), array(
'monolog.logfile' => __DIR__ . '/../files/logs/log.log',
));
我尝试在控制器上的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");
我没有任何错误,但它根本不起作用。
我只是想把我的“测试”消息放在我的log.log文件中,我该怎么做?
感谢您的帮助
答案 0 :(得分:1)
我无法根据您提供的信息真实地回答您的问题,但这是一个缓慢的新闻日,所以在工作日志工作的Silex网站上蹦蹦跳跳。所有文件都在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);
}
}
写入log / general.log,如下所示:
[2016-12-28 13:58:05] app.INFO: hi! [] []
我注意到的一件事是,如果日志文件的路径是bung,那么Monolog似乎只是吞下它(这不是完全理想的)。这可能是你的问题。
无论如何,抓住上面的代码并乱用它。希望你能够解决你和我之间的差异,并让你的工作。