2016-05-12 5 views
2

私はそれが可能であるかどうかわからないモノログで何かをしようとしています。だから私は実際のログファイルを整理する方法を考えていた。Monolog RotatingFileHandlerは、ログの種類に応じて特定のファイルに保存します

私は3つの異なるファイル、INFO、WARNING、ERRORがあると思っていましたが、ファイル内の特定の日付を検索するのは難しいでしょう。だから私はこのように整理することにしました:

ログ

  • | _Year | | _12-05-2016 を_Warning |
  • _12-05-2016.log | _情報 | _Year を。 _error | | _Year | _12-05-2016.logここ

はWHだ

  • ログ私がすることにした

    $infoStreamHandler = new \Monolog\Handler\RotatingFileHandler($settings['path_info'].'/info.log', Monolog\Logger::INFO); 
    $warningStreamHandler = new \Monolog\Handler\RotatingFileHandler($settings['path_warn'].'/warning.log', Monolog\Logger::WARNING); 
    $errorStreamHandler = new \Monolog\Handler\RotatingFileHandler($settings['path_error'].'/error.log', Monolog\Logger::ERROR); 
    
    $logger ->pushHandler($infoStreamHandler); 
    $logger->pushHandler($warningStreamHandler); 
    $logger->pushHandler($errorStreamHandler); 
    

    しかし、これは期待どおりに動作しません。私はStreamHandlerで最初に試してみましたが、すべての日付に対して1つのファイルを作成していましたが、RotatingFileHandlerに切り替えるとすぐに警告ログに保存するのではなく、3つのファイルすべてに同じ警告が保存されました。

    どのような考えですか?

    ありがとうございます。

  • 答えて

    1

    だから私はちょうど問題が何かを発見した。 私は$maxFilesというパラメーターを紛失していました。 $infoStreamHandler = new \Monolog\Handler\RotatingFileHandler($settings['path_info'].'/info.log', 0, Monolog\Logger::INFO);

    これは完全に機能します。

    4

    あなたは./path/to/directory/2017/07/21-yournamelog.logこれにログを分割したい場合は、あなたが何をする必要があるかです:

    $logger = new Logger('chanel-name'); 
    $handler = new RotatingFileHandler('./path/to/directory/yournamelog.log', 0, Logger::INFO, true, 0664); 
    # '/' in date format is treated like '/' in directory path 
    # so Y/m/d-filename will create path: eg. 2017/07/21-filename.log 
    $handler->setFilenameFormat('{date}-{filename}', 'Y/m/d'); 
    $ogger->pushHandler($handler); 
    
    $array = ["x" => "y"]; 
    $logger->addInfo('new message', $array); 
    

    それがパスにログファイルを作成します。コンテンツと./path/to/directory/2017/07/21-yournamelog.logを:

    [2017-07-21 14:33:49] chanel-name.INFO: new message {"x":"y"} [] 
    
    関連する問題