Du coup je comprends mieux pourquoi je n'y retrouve pas certaines erreurs que je vois passer et que j'en vois d'autres.
Est ce qu'il ne faudrait pas toujours logger ?
Le test est $should_log = (empty($GLOBALS['visiteur_session']) || !include_spip('inc/autoriser') || !autoriser('debug'));
pour, selon le commentaire: loger si personne ne verra l'erreur.
Vu le test et autoriser_debug_dist, ça loge actuellement les erreurs commises par les non-logés ou non-admins, peut être car ça considère qu'un admin voyant une erreur la corrige tout de suite en la voyant et n'a pas besoin des logs... ou pour pas encombrer les logs lorsqu'un squelette est en cours d'écriture et mise au point.
C'est un peu futé, mais un peu seulement car tous les admins ne sont pas devs. Pour affiner encore plus futé, ce serait un cas d'usage d'une constante _SITE_ETAPE_DEV sûrement déjà évoquée ailleurs et qui vaudrait DEVELOPPEMENT ou PRODUCTION.
Mais pour faire simple, public_debusquer_dist pourrait aussi toujours loger.
Et en l'état de la dist, chaque site peut surcharger autoriser_debug...
En tout cas c'est une erreur de supposer futément qu'une erreur n'a pas besoin d'être logée si c'est un 0minirezo qui visite. Car c'est pas parce qu'une erreur est affichée dans un coin d'écran qu'elle sera vue.
Vécu : je suis 0minirezo sur un site ; j'ai renommé un squelette footer mais oublié de corriger une inclusion ; et je n'ai pas vu le message d'erreur affiché sur la page du site, car il est tout en bas, loin en bas...
Je crois donc qu'il faut retirer le test de !autoriser_debug().
Je suis assez d’accord que ça devrait loger par défaut tout le temps.
Pour info, il y a 2 ans, rien n’était logé, et lorsque des erreurs de squelettes arrivaient sur des pages anonymes, bah on ne pouvait pas être au courant, d’où l’introduction de ce log.
Maintenant je serai effectivement d’avis d’enlever ce test should_log et de systématiquement loger l’erreur.