【发布时间】:2017-02-06 08:39:58
【问题描述】:
我使用 fosrestBundle 和 monolog 记录器来创建自定义日志。 我在 config_dev.yml 中添加了这个配置:
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
console:
type: console
myCustomLog:
type: stream
path: "%kernel.logs_dir%/myCustomLog%kernel.environment%.log"
channels: [myCustomLog]
所以我在我的其他环境配置文件(config_prod.yml、config_qualif.yml ...)中做了同样的事情
问题是可能没有使用 config_prod 或 config_qualif。
我遇到了这个错误:
PHP Fatal error: Uncaught Symfony\\Component\\DependencyInjection\\Exception\\ServiceNotFoundException: You have requested a non-existent service "monolog.logger.myCustomLog". in /var/www/myWebSite/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ContainerBuilder.php:816\nStack trace:\n#0
我在 config.yml 文件中移动了我的 monolog conf,它适用于所有环境,但这不是一个好的解决方案。
你能帮我理解如何正确使用环境配置文件吗,因为我不确定我做的是否好?而且我不确定 fosrestbundle 使用正确的环境配置文件。
对于 prod 环境,我的 apache conf 看起来像这样:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/myWebSite/web
<IfModule dir_module>
DirectoryIndex app.php
</IfModule>
<Directory /var/www/myWebSite/web>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app.php [QSA,L]
</IfModule>
</Directory>
对于 qualif 环境,重写规则是:
RewriteRule ^(.*)$ /app_qualif.php [QSA,L]
在 app.php 我有这一行:
$kernel = new AppKernel('prod', false);
在 app_qualif.php 我有这一行:
$kernel = new AppKernel('qualif', false);
感谢您的帮助
【问题讨论】:
标签: symfony