PHP hata günlüğü ve satır karakter

3 Cevap php

Izin verir veya kaçan olmaktan hata ayıklama çıktı satırsonu engeller PHP yapılandırma ayarı nedir?

Ayıklarken, iki farklı yükler (MAMP / OSX çalışan dev dizüstü bilgisayar ve debian çalışan bir dev sunucu) ben hata günlükleri farklı sonuçları görmek.

error_log(print_r(array(1,2,4),1));

Debian bu olarak / var/log/apache2/error.log görünür

[Thu Jul 30 11:32:34 2009] [error] [client 118.93.246.104] Array\n(\n    [0] => 1\n    [1] => 2\n    [2] => 4\n)\n, referer: http://dev.example.org/

/ Applications / MAMP / günlükleri / php_error_log olarak OSX bu görünür

[30-Jul-2009 11:34:00] Array
(
    [0] => 1
    [1] => 2
    [2] => 4
)

Ben (ayrı / Uygulamalar dizinine logfiles taşındıktan itibaren) hata ayıklama için MAMP yolu tercih.

Teşekkürler!

3 Cevap

Chris, bir dosyaya işaret etmek Debian php.ini hatalar.log direktif değiştirmeniz gerekir. Bu tanımsız ise, birden fazla satır desteklemiyor syslog'a geçecektir.

Detaylar:

error_log function

error_log direktifi

Bunun için güzel bir çözüm ile geldi ve sadece bu konuda yazmış, insanlar için yararlı olabilir: http://www.drcoen.com/2012/03/php-error_log-and-newlines-a-solution/. TL; DR: / tmp, o dosya için hata ayıklama bilgisi yazıyor ve orada rota Apache günlük de (yani 2 hata dosyaları izlemek gerekmez) bir işlevi yazmak kendiniz oluşturabilirsiniz bir dosyaya yazmak.

Sorun Apache süreci hatalar.log dosyasına yazamıyor zaman, bu yüzden neden syslog yerine dosyasına yazmaktadır. Syslog satır sonlarını kadar karışıyor.

Dolayısıyla, sadece yapın:

chmod 777 error.log

Bu sorunu çözmek gerekir.