2012-03-19 6 views
5

Có thể gửi cùng một lỗi tới bản ghi lỗi php toàn cục trong/var/log/php_errors cũng như gửi cùng lỗi tới một bản ghi lỗi cục bộ trong/var/www/mysite/php_errors không?Bạn có thể ghi lại các lỗi php vào nhiều tệp không?

Trên máy chủ dàn dựng của chúng tôi, tôi kết thúc tệp nhật ký và rất nhiều công cụ wordpress cũng như một số bản in xấu xí sẽ đến từ các nhà phát triển khác. Tôi muốn có một tệp lỗi toàn cầu để xem liệu có bất kỳ điều gì phá vỡ máy chủ theo thời gian hay không, cũng như tách các lỗi cục bộ của tôi để tôi có thể theo dõi chúng tốt hơn nếu tôi chỉ quan tâm đến một trang web tại thời điểm này .

+0

Điều này hút, 'error_log = log1; log2' không hoạt động. – Pacerier

Trả lời

1

Không phải là tôi biết. Tuy nhiên, bạn có thể sử dụng cài đặt ini error_prepend_string và thêm tất cả nhật ký lỗi của mình vào một thứ gì đó. Và sau đó khi các file log của bạn, bạn đuôi bạn có thể grep trên bất cứ điều gì bạn thiết lập và nó sẽ cho bạn thấy chỉ những thông điệp từ trang web đó (do đó miễn là bạn chọn một cái gì đó khá độc đáo.)

http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-prepend-string

+0

Chúng ta có thể thiết lập điều này trong một tập tin .htaccess không? Đây có lẽ là giải pháp đơn giản nhất. Tôi cần chải lên grep-pipe-fu. – yellottyellott

+0

'error_prepend_string' hoạt động cho đầu ra hiển thị lỗi nhưng không hoạt động để ghi nhật ký. – majick

1

Nếu bạn sử dụng một thư viện chẳng hạn như log4php thì bạn có thể định cấu hình một loạt các tùy chọn ghi nhật ký, bao gồm ghi vào nhiều tệp, gửi email, v.v ... dựa trên loại nhật ký.

3

Sử dụng set_error_handler và tạo chức năng lỗi tùy chỉnh với nhiều lần đăng nhập tùy thích.

+0

"Không thể xử lý các loại lỗi sau với chức năng do người dùng xác định: E_ERROR, ..." Ý tưởng hay, nhưng tôi gây ra quá nhiều lỗi nghiêm trọng. – yellottyellott

+0

Đối với những người bạn có thể sử dụng 'register_shutdown_function' (http://php.net/manual/en/function.register-shutdown-function.php), cũng sẽ có ý nghĩa để sử dụng' set_custom_handler' (http://php.net /manual/en/function.set-exception-handler.php) cũng cho bất kỳ trường hợp ngoại lệ không bắt buộc nào – Ing

+0

Có một lớp có sẵn ở đây làm những gì @Ing gợi ý: https://stackoverflow.com/a/30637618/5240159 – majick