Mage :: log () ไม่ได้ล็อกอินในไฟล์ทั้งหมดที่ใช้โดย Magento?


11

ผมได้เขียนทับในSitemap.php app/code/local/Mage/Sitemap/Model/Sitemap.phpไฟล์ดูเหมือนว่าจะใช้ถ้าฉันลบเนื้อหาทั้งหมดมีข้อผิดพลาดตามที่คาดไว้

ฉันคัดลอกเนื้อหาทั้งหมดของมาตรฐานSitemap.phpพร้อมการเปลี่ยนแปลงเพียงครั้งเดียว ฉันเพิ่ม

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

เมื่อตอนที่ผมทำนี้ทุกที่อื่นก็พิมพ์testในvar/log/system.logขณะที่คาดว่าเฉพาะในไฟล์นี้ก็ไม่ได้เข้าสู่ระบบข้อความ

ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก


แก้ไข

การใช้

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

ไม่ทำงานเช่นกัน


เปิดใช้งานการบันทึกในการกำหนดค่าระบบหรือไม่ คือvar/log/สามารถเขียนได้โดยผู้ใช้เว็บของคุณ ( apache, httpd, www-dataฯลฯ )
musicliftsme

การเข้าสู่ระบบใช้งานได้SitemapController.phpดังนั้นใช่ และใช่var/logสามารถเขียนได้ ขอบคุณสำหรับความคิดของคุณ
Yorrd

บางทีแกนของ Mage ไม่ได้โหลด? อาจลอง Mage :: app ()
Tim Hallman

@ TimHallman ว่าวีโอไอพีจะทำงานโดยไม่มีหลักได้อย่างไร เว็บไซต์ใช้งานได้ดี
Yorrd

เพราะมันคือ sitemap.php ลองเข้าสู่ระบบapp/code/local/Mage/Sitemap/Model/Observer.phpแทนSitemap.php
ทิมฮอลแมน

คำตอบ:


12

ฉันจะสมมติว่าไฟล์ถูกโหลด แต่วิธีการไม่ได้เรียกว่า ดังนั้นเพียงแค่ตั้งเบรกพอยต์ (หรือวิธีที่ไม่ดีdie()) เป็นวิธีการของคุณและให้แน่ใจว่ามันถูกเรียกว่า

หลังจากที่วีโอไอพีเริ่มต้นMage::logอย่างน้อยก็ด้วย$forceพารามิเตอร์ที่เขียนบันทึกของมัน


ใช่. ขอบคุณ ฉันเดาว่าฉันจะเปิดคำถามอีกข้อหนึ่งว่าทำไม generateXml ของฉันไม่โหลด เพราะไม่มันไม่ถึงจุดพัก
Yorrd

29

Mage::log('text here', null, 'system.log', true)ใช้
ที่ควรทำงานตลอดเวลา


หรือตัวอย่างเช่น sitemap.log ในกรณีที่คุณไม่ต้องการให้บันทึก sitemap ของคุณปะปนกับของแบบสุ่ม
Julien Lachal

@JulienLachal จริง ชื่อไฟล์สามารถเป็นอะไรก็ได้
Marius

โปรดดูการแก้ไขของฉันสิ่งนี้ไม่ได้ผล
Yorrd

2

เดาได้อีกที่นี่ - รุ่นแผนผังเว็บไซต์มักจะถูกเรียกโดย cronjob หาก cronjob ของคุณทำงานภายใต้ผู้ใช้ที่แตกต่างจากผู้ใช้เว็บของคุณและไม่มีสิทธิ์ในการเขียนไปยังไฟล์ system.log ที่มีอยู่ของคุณคุณจะไม่ได้รับรายการใด ๆ


จริง แต่ฉันกำลังทดสอบโดยคลิก "สร้าง" ที่หน้าผู้ดูแลระบบของ Sitemap ดังนั้นฉันคิดว่าเขาควรได้รับอนุญาต แก้ไข: มันไม่ทำงานหากการอนุญาตถูกตั้งค่าเป็น 777
Yorrd

0

ให้สิทธิ์ที่ถูกต้องกับvar/โฟลเดอร์ของคุณ:

chmod -Rv 777 var/

ดังนั้นใช้รหัสนี้ด้านล่าง:

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

print_rจะป้องกันไม่ให้เกิดข้อผิดพลาดบางอย่างที่เกี่ยวข้องกับประเภทของตัวแปรของคุณ


0

วางบรรทัดนี้ในฟังก์ชั่นหรือไฟล์ใด ๆ

Mage :: log ("ข้อความของคุณ -", null, 'your-log-filename.log');

ไฟล์นี้จะถูกสร้างขึ้นภายในเส้นทางโฟลเดอร์รากของคุณเช่น

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

หวังว่ามันจะทำงานให้คุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.