# Newline dans logs php

**URL:** <https://www.debian-fr.org/t/newline-dans-logs-php/80194>\
**Category:** Support Debian\
**Created:** [Septembre 18, 2019, 7:28 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194 "2019-09-18T07:28:00Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![kmchen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/3d9bf3/32.png) [@kmchen](https://www.debian-fr.org/u/kmchen)\
**Post date:** [Septembre 18, 2019, 7:28 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/1 "2019-09-18T07:28:00Z")

</div>

Bonjour,

les logs php ne montrent pas sauts de ligne. Exemple:

```
[Wed Sep 18 09:12:17.672136 2019] [proxy_fcgi:error] [pid 18955] [client 127.0.0.1:43810] AH01071: Got error 'PHP message: PHP Warning: file_put_contents(/var/www/lef/logs/everything.php): failed to open stream: Permission denied in /home/www/lef/libraries/joomla/filesystem/file.php on line 501PHP message: PHP Stack trace:PHP message: PHP 1. PlgSystemRedirect::handleException() /home/www/lef/plugins/system/redirect/redirect.php:0PHP message: PHP 2. PlgSystemRedirect::doErrorHandling() /home/www/lef/plugins/system/redirect/redirect.php:91PHP message: PHP 3. Joomla\\CMS\\Exception\\ExceptionHandler::render() /home/www/lef/plugins/system/redirect/redirect.php:112PHP message: PHP 4. Joomla\\CMS\\Log\\Log::add() /home/www/lef/libraries/src/Exception/ExceptionHandler.php:50PHP message: PHP 5. Joomla\\CMS\\Log\\Log->addLogEntry() /home/www/lef/libraries/src/Log/Log.php:166PHP message: PHP 6. Joomla\\CMS\\Log\\Logger\\FormattedtextLogger->addEntry() /home/www/lef/libraries/src/Log/Log.php:320PHP message: PHP 7. JFile::append() /home/www/lef/libraries/src/Log/Logger/FormattedtextLogger.php:157PHP message: PHP 8. file_put_contents() /home/www/lef/libraries/joomla/filesystem/file.php:501'

```

J’ai pourtant défini le fichier de log dans php.ini et ouvert le fichier en écriture:

```
root@kmcs:/home/kmc# grep apache2/error.log /etc/php/7.3/fpm/php.ini 
error_log = /var/log/apache2/error.log
root@kmcs:/home/kmc# ls -l /var/log/apache2/error.log 
-rwxrwxrwx 1 root adm 119728 sept. 18 09:24 /var/log/apache2/error.log

```

Toute suggestion bienvenue

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Septembre 18, 2019, 8:01 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/2 "2019-09-18T08:01:29Z")

</div>

> [@kmchen](#):
>
> les logs php ne montrent pas sauts de ligne. Exemple:

C’est bien ce que tu obtiens avec **cat /var/log/apache2/error.log** , tu n’utilises pas autre chose pour regarder le log ?

---

<div class="post-metadata">

**Author:** ![kmchen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/3d9bf3/32.png) [@kmchen](https://www.debian-fr.org/u/kmchen)\
**Post date:** [Septembre 18, 2019, 2:15 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/3 "2019-09-18T14:15:10Z")

</div>

effectivement j’utilise

`tail error.log | sed -ue 's/\\n/\n/g'`

mais ça n’a pas l’effet escompté

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Septembre 18, 2019, 5:26 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/4 "2019-09-18T17:26:50Z")

</div>

Ben donc c’est juste ta regexp qui bouffe les fins de lignes, non ?

---

<div class="post-metadata">

**Author:** ![kmchen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/3d9bf3/32.png) [@kmchen](https://www.debian-fr.org/u/kmchen)\
**Post date:** [Septembre 23, 2019, 7:13 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/5 "2019-09-23T07:13:40Z")

</div>

Voici l’affichage sans le filtr regexp:

```
kmc@kmcs:~$ sudo tail -f /var/log/apache2/error.log
[Mon Sep 23 01:51:15.916363 2019] [:error] [pid 814] python_init: Python version mismatch, expected '2.7.5+', found '2.7.16'.
[Mon Sep 23 01:51:15.924216 2019] [:error] [pid 814] python_init: Python executable found '/usr/bin/python'.
[Mon Sep 23 01:51:15.924247 2019] [:error] [pid 814] python_init: Python path being used '/usr/lib/python2.7:/usr/lib/python2.7/plat-x86_64-linux-gnu:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload'.
[Mon Sep 23 01:51:15.924271 2019] [:notice] [pid 814] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
...
[Mon Sep 23 09:09:21.222651 2019] [proxy_fcgi:error] [pid 875] [client 127.0.0.1:49612] AH01071: Got error 'PHP message: PHP Warning: session_start(): Failed to read session data: user (path: /var/lib/php/sessions) in /home/www/lef/libraries/joomla/session/handler/native.php on line 260PHP message: PHP Stack trace:PHP message: PHP 1. {main}() /home/www/lef/administrator/index.php:0PHP message: PHP 2. Joomla\\CMS\\Factory::getApplication() /home/www/lef/administrator/index.php:48PHP message: PHP 3. Joomla\\CMS\\Application\\CMSApplication::getInstance() /home/www/lef/libraries/src/Factory.php:140PHP message: PHP 4. Joomla\\CMS\\Application\\AdministratorApplication->__construct() /home/www/lef/libraries/src/Application/CMSApplication.php:343PHP message: PHP 5. Joomla\\CMS\\Application\\AdministratorApplication->__construct() /home/www/lef/libraries/src/Application/AdministratorApplication.php:48PHP message: PHP 6. Joomla\\CMS\\Application\\AdministratorApplication->loadSession() /home/www/lef/libraries/src/Application/CMSApplication.php:134PHP message: PHP 7. Joomla\\CMS\\Session\\Session->isNew() /home/www/lef/libraries/src/Application/CMSApplication.php:755PHP message: PHP 8. Joomla\\CMS\\Session\\Session->get() /home/www/lef/libraries/src/Session/Session.php:455PHP message: PHP 9. Joomla\\CMS\\Session\\Session->start() /home/www/lef/libraries/src/Session/Session.php:498PHP message: PHP 10. Joomla\\CMS\\Session\\Session->_start() /home/www/lef/libraries/src/Session/Session.php:620PHP message: PHP 11. JSessionHandlerJoomla->start() /home/www/lef/libraries/src/Session/Session.php:660PHP message: PHP 12. JSessionHandlerJoomla->start() /home/www/lef/libraries/joomla/session/handler/joomla.php:88PHP message: PHP 13. JSessionHandlerJoomla->doSessionStart() /home/www/lef/libraries/joomla/session/handler/native.php:50PHP message: PHP 14. session_start() /home/www/lef/libraries/joomla/session/handler/native.php:260'
```

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Septembre 23, 2019, 9:04 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/6 "2019-09-23T09:04:30Z")

</div>

C’est cool.  
Et donc quel est le problème ?

---

<div class="post-metadata">

**Author:** ![kmchen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/3d9bf3/32.png) [@kmchen](https://www.debian-fr.org/u/kmchen)\
**Post date:** [Septembre 23, 2019, 9:06 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/7 "2019-09-23T09:06:24Z")

</div>

Pas de sauts de ligne. Regarde bien ```  
[Mon Sep 23 09:09:21.222651 2019]…

```auto

```

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Septembre 23, 2019, 10:39 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/8 "2019-09-23T10:39:55Z")

</div>

Non, mais je sais lire.  
C’est juste:  
OK, tu as une regexp qui bouffent les fins de ligne quand tu l’appliques à ton log, et alors ?  
Ton fichier de log, lui, a les bonnes fins de lignes, rien à dire de ce coté.  
Bref, je ne vois pas quelle est ta question.

---

<div class="post-metadata">

**Author:** ![kmchen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/3d9bf3/32.png) [@kmchen](https://www.debian-fr.org/u/kmchen)\
**Post date:** [Septembre 23, 2019, 12:38 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/9 "2019-09-23T12:38:20Z")

</div>

Pas de regexp dans mon dernier extrait de listing et aucun retour à la ligne dans celle ci qui devrait en faire au moins 15 (lignes) et n’en fait qu’une:

```
[Mon Sep 23 09:09:21.222651 2019] [proxy_fcgi:error] [pid 875] [client 127.0.0.1:49612] AH01071: Got error 'PHP message: PHP Warning: session_start(): Failed to read session data: user (path: /var/lib/php/sessions) in /home/www/lef/libraries/joomla/session/handler/native.php on line 260PHP message: PHP Stack trace:PHP message: PHP 1. {main}() /home/www/lef/administrator/index.php:0PHP message: PHP 2. Joomla\\CMS\\Factory::getApplication() /home/www/lef/administrator/index.php:48PHP message: PHP 3. Joomla\\CMS\\Application\\CMSApplication::getInstance() /home/www/lef/libraries/src/Factory.php:140PHP message: PHP 4. Joomla\\CMS\\Application\\AdministratorApplication->__construct() /home/www/lef/libraries/src/Application/CMSApplication.php:343PHP message: PHP 5. Joomla\\CMS\\Application\\AdministratorApplication->__construct() /home/www/lef/libraries/src/Application/AdministratorApplication.php:48PHP message: PHP 6. Joomla\\CMS\\Application\\AdministratorApplication->loadSession() /home/www/lef/libraries/src/Application/CMSApplication.php:134PHP message: PHP 7. Joomla\\CMS\\Session\\Session->isNew() /home/www/lef/libraries/src/Application/CMSApplication.php:755PHP message: PHP 8. Joomla\\CMS\\Session\\Session->get() /home/www/lef/libraries/src/Session/Session.php:455PHP message: PHP 9. Joomla\\CMS\\Session\\Session->start() /home/www/lef/libraries/src/Session/Session.php:498PHP message: PHP 10. Joomla\\CMS\\Session\\Session->_start() /home/www/lef/libraries/src/Session/Session.php:620PHP message: PHP 11. JSessionHandlerJoomla->start() /home/www/lef/libraries/src/Session/Session.php:660PHP message: PHP 12. JSessionHandlerJoomla->start() /home/www/lef/libraries/joomla/session/handler/joomla.php:88PHP message: PHP 13. JSessionHandlerJoomla->doSessionStart() /home/www/lef/libraries/joomla/session/handler/native.php:50PHP message: PHP 14. session_start() /home/www/lef/libraries/joomla/session/handler/native.php:260'
```

---

<div class="post-metadata">

**Author:** ![anon70622873](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/278dde/32.png) [@anon70622873](https://www.debian-fr.org/u/anon70622873)\
**Post date:** [Septembre 23, 2019, 12:52 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/10 "2019-09-23T12:52:01Z")

</div>

Il n’y a rein d’anormal à cela. C’est le journal des erreurs d’Apache, si une requête provoque une erreur à un instant, l’ensemble du message d’erreur est sur la même ligne.  
Dans ton cas cette ligne est très longue puisque PHP est apparemment configuré pour afficher toutes les erreurs ( PHP Stack trace …).

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Septembre 23, 2019, 12:52 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/11 "2019-09-23T12:52:03Z")

</div>

> [@kmchen](#):
>
> Pas de regexp dans mon dernier extrait de listing

Qui était donc le log brut où on voyait trés bien un retour à la fin de chaque ligne de log, donc correct.

> [@kmchen](#):
>
> aucun retour à la ligne dans celle ci qui devrait en faire au moins 15:

Non, elle ne devrait pas faire 15 lignes.  
Elle constitue une seule ligne de log même si elle est trés longue.  
Elle contient une trace de pile d’un script php/joomla, qui est (et c’est normal) regroupé sur une seule ligne de log.

---

<div class="post-metadata">

**Author:** ![kmchen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/3d9bf3/32.png) [@kmchen](https://www.debian-fr.org/u/kmchen)\
**Post date:** [Septembre 23, 2019, 12:54 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/12 "2019-09-23T12:54:35Z")

</div>

Juste après “native.php on line 260” manque le premier saut de ligne qui devrait avoir lieu également après chaque élément de la pile du script PHP

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Septembre 23, 2019, 1:01 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/13 "2019-09-23T13:01:34Z")

</div>

Non.  
C’est toi qui veut qu’il y ai des retours chariots, pas la logique du système.  
Pour les logs et les trace de php, ça n’a pas à être formaté autrement dans le log que sur une seule ligne, c’est juste comme ça que ça doit sortir.  
Le format de ce que tu constates est normal et ne contient aucune “erreur”.

Aprés, si ce formatage ne te plait pas, tu peux analyser le log et le présenter autrement, mais c’est autre chose.

---

<div class="post-metadata">

**Author:** ![kmchen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/3d9bf3/32.png) [@kmchen](https://www.debian-fr.org/u/kmchen)\
**Post date:** [Septembre 23, 2019, 1:27 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/14 "2019-09-23T13:27:12Z")

</div>

Ce problème ne date pas d’hier et on peut voir de nombreux posts à ce sujet dont en voici un:  
[https://stackoverflow.com/questions/8503958/php-apache-error-log-doesnt-execute-new-line-characters-why/28461121#28461121](https://stackoverflow.com/questions/8503958/php-apache-error-log-doesnt-execute-new-line-characters-why/28461121#28461121)

C’est pourquoi j’avais précisé au début de ce post avoir défini error\_log dans le php.ini et utilisé les regexp pour tenter de faire apparaitre les sauts de ligne.

> [@mattotop](#):
>
> tu peux analyser le log et le présenter autrement,

Les regexep ne fonctionnant pas. Comment faire apparaitre les sauts de ligne qui, je le maintiens, existent dans le log PHP normalement ?

Ou bien comment empêcher les logs d’apache de passer par syslog ?

---

<div class="post-metadata">

**Author:** ![anon70622873](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/278dde/32.png) [@anon70622873](https://www.debian-fr.org/u/anon70622873)\
**Post date:** [Septembre 23, 2019, 1:46 UTC](https://www.debian-fr.org/t/newline-dans-logs-php/80194/15 "2019-09-23T13:46:31Z")

</div>

> [@kmchen](#):
>
> Les regexep ne fonctionnant pas. Comment faire apparaitre les sauts de ligne qui, je le maintiens, existent dans le log PHP normalement ?

Justement ce ne sont pas les logs de PHP mais ceux d’Apache et le lien que tu donnes fait la même confusion que toi.  
Les regexp fonctionnent il faut juste que tu trouves un motif à remplacer par des saut de lignes, par exemple (vite fait, mal fait) :  
`sed -e 's/ \/\n\t/g'`
