Пишите логи в symfony используя Monolog

У меня проблема с моим проектом, я хочу использовать Monolog для записи логов и не могу этого сделать.
Итак, я создал сервис:

services:
my_logger:
class: Monolog\Logger
arguments: [Debug]
calls:
- [pushHandler, [@my_log_handler]]

my_log_handler:
class: Monolog\Handler\StreamHandler
arguments: [/home/vagrant/Workspace/symfony/app/logs/test.log, 100]

Мой контроллер:

    $em = $this->getDoctrine()->getManager();
$categories = $em->getRepository('EnsJobeetBundle:Category')->getWithJobs();

Если я напишу:

$logger = $this->get('my_logger');
$logger->info('Test log');

Логи вставляются в test.log

Если я напишу:

$logger = $this->get('my_logger');
$logger->info(print_r($categories,true));

Логи не пишут. Я получаю ошибку 500.
Пожалуйста, помогите мне. Спасибо заранее !!!
Ошибки:

2015/03/05 12:58:48 [error] 4698#0: *76 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 532676608 bytes)PHP message: PHP   8. print_r() /home/vagrant/Workspace/symfony/src/Ens  /JobeetBundle/Controller/JobController.php:34" while reading response header  from upstream, client: 10.0.2.2, server: symfony.md, request: "GET
/job/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "symfony.dev:8000"

2

Решение

Вам не хватает памяти, пытаясь обработать массив. Это может быть по многим причинам, может быть, он слишком большой, может иметь рекурсивные аспекты и т. Д.

Хорошая хитрость при работе с этим — просто напечатать ключи. Вы увидите меньше данных, но у вас будет гораздо меньше шансов превзойти ограничения памяти. Когда вы посмотрите на свой массив, вы сможете распечатать его отдельные части после того, как посмотрите на ключи. Попробуй это:

$logger = $this->get('my_logger');
$logger->info(print_r(array_keys($categories),true));

Другой вариант, если вам действительно нужно увидеть весь массив, это увеличить ограничения памяти в php.ini. Посмотрите на строку, как это, чтобы изменить их:

memory_limit = 128MB
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]