如何使用 symfony 依赖注入模块登录我的应用程序?

How to do logging in my app using symfony's Depenency Injection module?

我已经阅读了有关 Symfony 与 Monolog 集成的当前文档,但它只说 运行:

composer require logger 引发错误 "package not found"。 (https://symfony.com/doc/current/logging.html#installation)

我正在使用这些组件:

"require": {
    "symfony/dependency-injection": "~3.0",
    "symfony/yaml": "~3.0",
    "symfony/config": "~3.0",
    "symfony/console": "~3.0",
    "symfony/validator": "~3.0",
    "symfony/event-dispatcher": "~3.0",
    "guzzlehttp/guzzle": "~6.0",
    "gedex/janrain-api": "~0.1"
},
"require-dev": {
    "phpunit/phpunit": "~5.7",
    "friendsofphp/php-cs-fixer": "~2.0",
    "squizlabs/php_codesniffer": "~3.0",
    "symfony/var-dumper": "~3.0"
},

我想使用依赖注入和配置模块进行日志记录。

编辑:它不是网络应用程序。它是一个提供抽象并公开内部的库 API,我希望能够记录方法中发生的事情。

看看你的 composer.json,你似乎还在使用 Symfony 3.x。您的版本的文档位于 https://symfony.com/doc/3.4/logging.html.

composer require logger 是与 Flex 一起使用的快捷方式。 Flex 在 Symfony 4 上是默认的,但在 Symfony 3 上是可选的。如果你是从早期版本升级的,我假设你目前没有使用 Flex。在这种情况下,您可以通过 运行:

安装 monolog 及其 Symfony 集成
composer require "symfony/monolog-bundle": "^3.1.0"

然后您必须将 monolog 包添加到您的 AppKernel 中:

    $bundles = [
        …
        new Symfony\Bundle\MonologBundle\MonologBundle(),
        …
    ];

然后你可以将@logger服务注入你自己的服务或者在你的控制器中调用它。