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


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


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.


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.


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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.