Mage :: log () tidak masuk semua file yang digunakan oleh Magento?

11

Saya telah ditimpa Sitemap.phpdi app/code/local/Mage/Sitemap/Model/Sitemap.php. File itu tampaknya digunakan, jika saya menghapus semua konten, ada kesalahan seperti yang diharapkan.

Saya menyalin konten lengkap standar Sitemap.php, dengan satu perubahan. saya tambahkan

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

Ketika saya melakukan ini di tempat lain, mencetak testdi var/log/system.logseperti yang diharapkan, hanya dalam file ini, itu tidak log pesan.

Setiap bantuan sangat dihargai


EDIT

menggunakan

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

juga tidak bekerja

Yorrd
sumber
Apakah logging diaktifkan dalam konfigurasi sistem? Apakah var/log/ditulis oleh pengguna web ( apache, httpd, www-data, dll)
musicliftsme
logging berfungsi SitemapController.php, jadi ya, benar. dan ya var/logbisa ditulisi. Terima kasih atas gagasan Anda
Yorrd
Mungkin inti Mage tidak dimuat? Mungkin coba Mage :: app ()
Tim Hallman
@TimHallman bagaimana magento bekerja tanpa inti? Situs berfungsi dengan baik
Yorrd
Karena itu sitemap.php. Coba masuk app/code/local/Mage/Sitemap/Model/Observer.phpdaripadaSitemap.php
Tim Hallman

Jawaban:

11

Saya akan berasumsi, file tersebut dimuat tetapi metode ini tidak dipanggil. Jadi cukup atur breakpoint (atau cara buruk a die()) ke dalam metode Anda dan pastikan itu dipanggil.

Setelah magento diinisialisasi Mage::logsetidaknya dengan $forceparameter menulis log-nya

Fabian Blechschmidt
sumber
Iya. Terima kasih. Saya kira saya akan membuka pertanyaan lain mengapa generateXml saya tidak dimuat. Karena tidak, itu tidak mencapai breakpoint.
Yorrd
29

Gunakan Mage::log('text here', null, 'system.log', true).
Itu harus bekerja sepanjang waktu.

Marius
sumber
Atau misalnya sitemap.log jika Anda tidak ingin log sitemap Anda dicampur dengan barang-barang acak.
Julien Lachal
@JulienLachal. Benar. Nama file bisa apa saja.
Marius
silakan lihat hasil edit saya, ini juga tidak berfungsi
Yorrd
2

Tebakan lain di sini - generasi sitemap umumnya dipicu oleh cronjob. Jika cronjob Anda berjalan di bawah pengguna yang berbeda dari pengguna web Anda dan tidak memiliki izin untuk menulis ke file system.log yang ada, Anda tidak akan mendapatkan entri.

Kristof di Fooman
sumber
Benar, tapi saya mengujinya dengan mengklik "menghasilkan" pada halaman admin sitemap. Jadi saya menganggap dia harus memiliki izin. EDIT: itu tidak berfungsi baik jika izin diatur ke 777
Yorrd
0

Berikan izin yang tepat ke var/folder Anda :

chmod -Rv 777 var/

Jadi gunakan seperti kode di bawah ini:

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

The print_r akan mencegah beberapa kesalahan yang berhubungan dengan jenis variabel Anda.

Rafael Corrêa Gomes
sumber
0

Letakkan baris ini di fungsi atau file apa pun

Mage :: log ("Pesan Anda -", null, 'your-log-filename.log');

file ini akan dibuat di dalam path folder root Anda seperti

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

Semoga ini akan berhasil untuk Anda.

Sarfaraj Sipai
sumber