例えば以下のようにメッセージの次の行にエラーの詳細をログ出力したかったとします。
[2015-08-04 11:24:11] Failed to connect to database. SQLSTATE[28000] [1045] Access denied for user 'uesr'@'localhost' (using password: YES)
以下のようにMonologのaddErrorで改行コードを突っ込んでも、期待通りの出力にはなってくれません。
$log->addError("Failed to connect to database.\n".$e->getMessage());
これはデフォルトで使用しているLineFormatterが改行を許さない仕様になっているためです。
以下のように改行を有効にしたLineFormatterのインスタンスを生成してStreamHandlerのインスタンスにセットしてあげれば改行が効くようになります。
$formatter = new LineFormatter(null, null, true); //第3引数で改行を有効にしています $stream = new StreamHandler(__DIR__.'/app.log', Logger::DEBUG); $stream->setFormatter($formatter); $log = new Logger('security'); $log->pushHandler($stream);