Mage :: log () không đăng nhập vào tất cả các tệp được Magento sử dụng?


11

Tôi đã bị ghi đè Sitemap.phptrong app/code/local/Mage/Sitemap/Model/Sitemap.php. Các tập tin dường như được sử dụng, nếu tôi loại bỏ tất cả nội dung, có một lỗi như mong đợi.

Tôi đã sao chép toàn bộ nội dung của tiêu chuẩn Sitemap.php, với một thay đổi duy nhất. Tôi đã thêm

public function generateXml() {
    Mage::log('test');
    ...
}

Khi tôi làm điều này bất cứ nơi nào khác, nó in testtrong var/log/system.lognhư mong đợi, chỉ có trong tập tin này, nó không đăng nhập được thông báo.

Bất kỳ trợ giúp nào cũng được đánh giá rất cao


BIÊN TẬP

sử dụng

Mage::log('text', null, <file>, true);

cũng không hoạt động


Là đăng nhập được kích hoạt trong cấu hình hệ thống? Là var/log/ghi bởi người dùng của bạn trên web ( apache, httpd, www-data, vv)
musicliftsme

đăng nhập hoạt động SitemapController.php, vì vậy, có. và có var/loglà có thể ghi. Cảm ơn ý tưởng của bạn
Yorrd

Có lẽ lõi Mage không được tải? Có thể thử Mage :: app ()
Tim Hallman

@TimHallman làm thế nào magento sẽ làm việc mà không có cốt lõi? Trang web hoạt động tốt
Yorrd

Bởi vì đó là sitemap.php. Hãy thử đăng nhập app/code/local/Mage/Sitemap/Model/Observer.phpthay vìSitemap.php
Tim Hallman

Câu trả lời:


11

Tôi sẽ giả sử, tập tin được tải nhưng phương thức không được gọi. Vì vậy, chỉ cần đặt một điểm dừng (hoặc cách xấu a die()) vào phương thức của bạn và đảm bảo rằng nó được gọi.

Sau khi magento được khởi tạo Mage::logít nhất với $forcetham số ghi nhật ký của nó


Đúng. Cảm ơn. Tôi đoán tôi sẽ mở một câu hỏi khác tại sao GenerXml của tôi không được tải. Bởi vì không, nó không đạt đến điểm dừng.
Yorrd

28

Sử dụng Mage::log('text here', null, 'system.log', true).
Điều đó nên làm việc tất cả các thời gian.


Hoặc ví dụ: sitemap.log trong trường hợp bạn không muốn nhật ký sơ đồ trang web của mình trộn lẫn với nội dung ngẫu nhiên.
Julien Lachal

@JulienLachal. Thật. Tên tệp có thể là bất cứ điều gì.
Marius

vui lòng xem chỉnh sửa của tôi, điều này cũng không hoạt động
Yorrd

2

Một dự đoán khác ở đây - việc tạo sơ đồ trang web thường được kích hoạt bởi một cronjob. Nếu cronjob của bạn chạy dưới một người dùng khác với người dùng web của bạn và không có quyền ghi vào tệp system.log hiện tại của bạn, bạn sẽ không nhận được bất kỳ mục nào.


Đúng, nhưng tôi đang kiểm tra nó bằng cách chỉ cần nhấp vào "tạo" trên trang quản trị sơ đồ trang web. Vì vậy, tôi cho rằng anh ta nên có sự cho phép. EDIT: nó cũng không hoạt động nếu quyền được đặt thành 777
Yorrd

0

Cung cấp giấy phép đúng cho var/thư mục của bạn :

chmod -Rv 777 var/

Vì vậy, sử dụng như mã này dưới đây:

Mage::log(print_r($yourTest), null, 'customLogFile.log', true);

Các print_r sẽ ngăn chặn một số lỗi liên quan đến các loại biến của bạn.


0

Đặt dòng này trong bất kỳ chức năng hoặc tập tin

Mage :: log ("Tin nhắn của bạn -", null, 'your-log-filename.log');

tập tin này sẽ được tạo tại bên trong đường dẫn thư mục gốc của bạn như

/var/log/your-log-filename.log

hy vọng nó sẽ làm việc cho bạn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.