PHP のエラーログで中途半端なスタックトレースが記録されるのは log_errors_max_len の制限にかかっているから

次のコードを実行すると、

```php
<?php
function orearesoredorekoremore($n)
{
    if ($n > 0) {
        orearesoredorekoremore($n - 1);
    } else {
        throw new Exception("oops!");
    }
}

orearesoredorekoremore(50);
```

次のようにエラーが表示されます。

```
$ php z.php

Fatal error: Uncaught exception 'Exception' with message 'oops!' in /tmp/z.php:7
Stack trace:
#0 /tmp/z.php(5): orearesoredorekoremore(0)
#1 /tmp/z.php(5): orearesoredorekoremore(1)
#2 /tmp/z.php(5): orearesoredorekoremore(2)
#3 /tmp/z.php(5): orearesoredorekoremore(3)
#4 /tmp/z.php(5): orearesoredorekoremore(4)
#5 /tmp/z.php(5): orearesoredorekoremore(5)
#6 /tmp/z.php(5): orearesoredorekoremore(6)
#7 /tmp/z.php(5): orearesoredorekoremore(7)
#8 /tmp/z.php(5): orearesoredorekoremore(8)
#9 /tmp/z.php(5): orearesoredorekoremore(9)
#10 /tmp/z.php(5): orearesoredorekoremore(10)
#11 /tmp/z.php(5): orearesoredorekoremore(11)
#12 /tmp/z.php(5): orearesoredorekoremore(12)
#13 /tmp/z.php(5): orearesoredorekoremore(13)
#14 /tmp/z.php(5): orearesoredorekoremore(14)
#15 /tmp/z.php(5): orearesoredorekoremore(15)
#16 /tmp/z.php(5): orearesoredorekoremore(16)
#17 /tmp/z.php(5): orearesoredorekoremore(17)
#18 /tmp/z.php(5): orearesoredorekoremore(18)
#19 /tmp/z.php(5): orearesoredorekoremore(19)
#20 /tmp/z.php(5): orearesoredorekoremore(2 in /tmp/z.php on line 7
```

`#20 /tmp/z.php(5): orearesoredorekoremore(2 in /tmp/z.php on line 7`
の辺りがおかしいですが、これは `log_errors_max_len` の制限に掛かっているためです。

`log_errors_max_len` のデフォルトは 1024 です。

```
$ php -i | grep log_errors_max_len
log_errors_max_len => 1024 => 1024
```

下記の部分が丁度 1024 バイトになっています。

```
Uncaught exception 'Exception' with message 'oops!' in /tmp/z.php:7
Stack trace:
#0 /tmp/z.php(5): orearesoredorekoremore(0)
#1 /tmp/z.php(5): orearesoredorekoremore(1)
#2 /tmp/z.php(5): orearesoredorekoremore(2)
#3 /tmp/z.php(5): orearesoredorekoremore(3)
#4 /tmp/z.php(5): orearesoredorekoremore(4)
#5 /tmp/z.php(5): orearesoredorekoremore(5)
#6 /tmp/z.php(5): orearesoredorekoremore(6)
#7 /tmp/z.php(5): orearesoredorekoremore(7)
#8 /tmp/z.php(5): orearesoredorekoremore(8)
#9 /tmp/z.php(5): orearesoredorekoremore(9)
#10 /tmp/z.php(5): orearesoredorekoremore(10)
#11 /tmp/z.php(5): orearesoredorekoremore(11)
#12 /tmp/z.php(5): orearesoredorekoremore(12)
#13 /tmp/z.php(5): orearesoredorekoremore(13)
#14 /tmp/z.php(5): orearesoredorekoremore(14)
#15 /tmp/z.php(5): orearesoredorekoremore(15)
#16 /tmp/z.php(5): orearesoredorekoremore(16)
#17 /tmp/z.php(5): orearesoredorekoremore(17)
#18 /tmp/z.php(5): orearesoredorekoremore(18)
#19 /tmp/z.php(5): orearesoredorekoremore(19)
#20 /tmp/z.php(5): orearesoredorekoremore(2
```

`log_errors_max_len=0` を指定すれば無制限になるので、最後まですべて表示されます。

```
$ php -d log_errors_max_len=0 z.php

Fatal error: Uncaught exception 'Exception' with message 'oops!' in /tmp/z.php:7
Stack trace:
#0 /tmp/z.php(5): orearesoredorekoremore(0)
#1 /tmp/z.php(5): orearesoredorekoremore(1)
#2 /tmp/z.php(5): orearesoredorekoremore(2)
 :
#98 /tmp/z.php(5): orearesoredorekoremore(98)
#99 /tmp/z.php(5): orearesoredorekoremore(99)
#100 /tmp/z.php(11): orearesoredorekoremore(100)
#101 {main}
  thrown in /tmp/z.php on line 7
```