2011-11-29 18 views
14

Tôi đang làm việc trên một số mã sử dụng error_log() để gỡ lỗi. Vấn đề là vì lý do nào đó, tất cả các ngắt dòng trong đầu ra xuất hiện dưới dạng các chuỗi \n theo nghĩa đen, vì vậy không có ngắt dòng thực tế (làm cho nó gần như không thể hiểu mảng phức tạp).
Tôi đã thử sử dụng cả hai var_exportprint_r với chức năng error_log và cả hai dẫn đến cùng một kết quả: một khối văn bản có số \n nằm rải rác trong suốt. Tôi thậm chí đã thử làm str_replace\n đến PHP_EOL mà không thành công. Tôi đang làm gì sai?Lỗi PHP_log xuất ngắt dòng dưới dạng chuỗi chữ " n" trên Mac OSX

Để làm rõ: các chuỗi \n xuất hiện trong trình xem nhật ký lỗi Bảng điều khiển, TextEdit và Thiết bị đầu cuối.

EDIT

Chỉ muốn lưu ý trước rằng có, Tôi biết rằng bạn cần phải tăng gấp đôi-quote \n chuỗi cho chúng xuất hiện như ngắt dòng. Tuy nhiên, tôi đang đối phó với đầu ra từ print_r hoặc var_export (để kiểm tra một mảng) vì vậy điều này không thực sự giúp tôi (tôi nghĩ?).

Trả lời

5

Rõ ràng, sự cố này độc lập với hệ điều hành của bạn. Xem câu hỏi này: PHP error log and newline chars

... bạn sẽ có thể thay đổi chỉ thị error_log trong php.ini của bạn trên Debian để trỏ tới tệp. Nếu điều này là không xác định, nó sẽ đi qua syslog mà không hỗ trợ nhiều dòng.

+1

Cũng lưu ý rằng để Apache viết dòng mới vào error.log, nó sẽ cần quyền ghi để làm như vậy (khác syslog sẽ kết thúc bằng văn bản để error.log thay thế). Perms sửa chữa hoặc tập tin mới 'php-errors.log' nếu bạn muốn giữ nguyên định dạng syslog cho các lỗi của Apache (sở thích của tôi). –

31

Là một thay thế, bạn có thể xử lý/thay thế '\ n' qua sed, vì vậy họ hiển thị như dòng mới trong giao diện điều khiển:

Linux

$ tail -f error_log | sed "s/\\\n/\\n/g" 

Mac OS X

$ tail -f error_log | sed "s/\\\n/^M^L/g" 

Lưu ý: Trong Mac OS X, kết thúc của một dòng là CRLF (Nguồn cấp dòng trả về vận chuyển) khi trong hệ thống LINUX chỉ có LF (Cấp nguồn)

Lưu ý 2: Trong Mac OS X đến đầu ra ^M trong Thiết bị đầu cuối, báo chí Control+V Control+M, để xuất ^L, bấm Control+V Control+L

+2

Khá một cách giải quyết thông minh :) –

+2

Cú pháp OSX không hoạt động. – Tyguy7

+0

Phiên bản OSX nào. Mavericks? – eightyfive

Các vấn đề liên quan