2016-05-25 20 views
0

「コマンド」ファイルログファイル

<?php 

namespace LogicielBundle\Command\Cron; 

use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; 
use Symfony\Component\Console\Input\InputInterface; 
use Symfony\Component\Console\Output\OutputInterface; 

class MailRapportDometechCommand extends ContainerAwareCommand 
{ 

    protected function configure() 
    { 
     $this 
     ->setName('logiciel:mail_rapport_preparation_dometech') 
    ; 
    } 

    protected function execute(InputInterface $input, OutputInterface $output) 
    { 
     $output->writeln('. <bg=black;fg=white>Log color ...</>'); 

     $logFile = fopen('app/CommandLogs/MailRapportDometech/compteur.txt', 'w+'); 
     fputs($logFile, 'Test ... how to have $output data ?'); 
     fclose($logFile); 

    } 
} 

し、可能な場合 感謝:)

が:)場合は、私に電子-mailエラーを送信

答えて

2

ファイルに直接書き込む代わりにloggerサービスを使用する必要があります。これらのアクションのために、MonologバンドルはSymfonyのコアに統合されました。例えば

$this->getContainer()->get('logger')->error('your message'); 

そして、あなたのapp/config/config.ymlであなたが各レベルのハンドラをカスタマイズすることができます。

monolog: 
    handlers: 
     applog: 
      type: stream 
      path: /path/to/your/file.log 
      level: error 

電子メールハンドラの作成方法については、ドキュメントをご覧ください。

+0

ありがとう、このメソッドはPHPエラーを保存できません: -/ –

+0

あなたは正しくありません。 Symfony Debugコンポーネントはすべてのエラーを処理し、複数のチャネルに書き込みます。本番環境でエンドユーザDebug :: enable(null、false)に報告することなく有効にすることができます。 –