Bonjour amis du beau code,
Je travaille sur un script d'import et je logue les événements dans monologue.
J'ai définit un channel qui me permet d'avoir mes logs dans la sortie std et dans un fichier log spécifique.
config.yml
1 2 3 4 5 6 7 8 9 10
| monolog:
channels: ['import_modeles_channel']
handlers:
import_modeles:
channels: ['import_modeles_channel']
type: stream
path: '%kernel.logs_dir%/import_modeles.log'
import_modeles_console:
channels: ['import_modeles_channel']
type: console |
Dans la commande je peux logger
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class ImportModelsCommand extends AbstractCommand
{
/** @var Logger */
private $logger;
protected function execute(InputInterface $input, OutputInterface $output)
{
/** @var Logger logger */
$this->logger = $this->getContainer()->get('monolog.logger.import_modeles_channel');
$this->logger->debug('===========');
$this->logger->debug(date('Y-m-d H:i.s'));
// Tests
$this->logger->alert('alert');
$this->logger->critical('critical');
$this->logger->emergency('emergency');
$this->logger->error('error');
$this->logger->warning('warning');
$this->logger->notice('notice'); // -v
$this->logger->info('info'); // -vv
$this->logger->debug('debug'); // -vvv
// -q RIEN !
// dododooodoodoooo
}
} |
Seulement voila. Tous mes logs s'entassent dans '%kernel.logs_dir%/import_modeles.log'
Et j'aurais bien aimé que mon script génère un nouveau fichier à chaque exécution.
Et que je puisse récupéré ce fichier à la fin pour l'envoyer par email..
Comment on fait ça ?
$logger->setLogFile($logDir.'import.'.date('Y-m-d_h-i-s').'.log'); // Truc qui n'existe pas ....
Merci pour votre aide 
Je suis en symfony ~2.7
Partager