חוץ מ… אם אתה לא.
לפעמים אתה לא.
מצטער לספר,
האמת היא פשוטה,
נתקלים,
נכשלים,
לפעמים גם אתה.
(“אם יוצאים מגיעים למקומות נפלאים”, ד”ר סוס)
אחת הדרכים שהכי נוח לי לדבג בהן, היא echo ו-var_dump. לפעמים זה אפילו יותר קל מלהיות ב-debug mode, אז זו המתודה הכי נפוצה אצלי. אבל, לפעמים, אי אפשר להשתמש בדרכים האלה. לפעמים הסיבה ברורה – למשל, כשהתעסקתי עם השמירה של הוידג’ט, לא יכולתי להשתמש ב-echo כי הפונקציה פעלה ב-AJAX, וריפרשה את החלק של הוידג’ט שאליו עשיתי את ה-echo, כך שלא יכולתי לראות מה הדהד… ולפעמים הסיבה לא ברורה – פשוט מקבלים איזו שגיאה פאטאלית שלא מאפשרת לדף להתרנדר, בלי שברור למה לא מתחשק למערכת להדהד את הדברים שבא לך שהיא תהדהד… אבל התוצאה זהה – בין אם ברור לך מדוע, ובין אם לא – צריך למצוא דרך אחרת להשאיר סימני דרך או לקבל את את הערכים של משתנים שמעניינים אותך.
אז מתברר שיש עוד דרך להוציא לאור את ההדהודים או הערכים הרצויים, וזה ע”י כתיבה לקובץ לוג. את הדבר הזה גיליתי באמצעות ה-CTO שלנו, אילון קורן, שלא רק חקר וגילה את הדרך הנוחה לעשות את זה, אלא גם כתב לצוות מדריך כיצד לעשות זאת. המדריך הלהיב אותי כ”כ שביקשתי את רשותו של אילון ואני משתפת אתכם בזה.
אז מה טוב בכתיבה לקובץ לוג? מתברר שאפשר לעשות את זה איפה שרוצים בקוד, וזה עובד תמיד – גם ב-AJAX וגם במקרים הבלתי מוסברים שתיארתי לעיל. הידד!
אז איך עושים את זה?
דבר ראשון, צריך להחליט איפה ליצור את קובץ הלוג. למיטב הבנתי, המקובלות החברתית היא ליצור תיקיה תחת תיקיית usr, לתת לתיקיה הזאת את השם שלך (כן אתה, המפתח שרוצה לכתוב לוג) למשל:
"/usr/leaLog"
יש לוודא שהתכונות שלה הן כדלקמן:
במיוחד חשוב מאוד שה – Group וה- Owner יהיו apache !!! אחרת קובץ ה- log לא יכתב למגירה.
כדי לשנות זאת יש לפתוח PuTTY על השרת המתאים ולכתוב את השורה הבאה:
chown –R apache.apache [name of folder]
דבר שני – ליצור את הקובץ. אפשר באמצעות תוכנת FTP, או אפשר ב-SSH, עם הפקודה הבאה:
touch /path/to/file
דבר שלישי, אחרי שיצרנו את הקובץ, ניתן לכתוב בקוד את הדברים הבאים:
כתיבת מידע לקובץ:
error_log ("all gone wrong", 3, "/usr/eylonLog/log.txt");
כאשר המספר 3 מורה לפקודה לרשום לקובץ, ולאחריו יש להזין את הנתיב המלא ואת שם קובץ ה- log .
* הערה: יש להוסיף למידע שאנו שמים ב- log סימן שבירת שורה ( "/n"
) בסוף המידע מכיוון שה- log לא עושה זאת באופן אוטומטי.
* הערה: ה- log לא מוסיף באופן אוטומטי תאריך ושעה. ניתן להוסיף זאת ידנית!
עכשיו נניח שלא מספיקה לנו מחרוזת שגיאה, או סתם מחרוזת כלשהי, אלא אנחנו רוצים לבדוק מה הערכים של משתנים מסוימים, כפי שאנחנו עושים עם var_dump. אז מצאתי פוסט של מישהו שהסביר איך לעשות var_dump לתוך קובץ, וזה הולך כך:
$x = "My string"; $logLocation = "/usr/lea/mylog.log"; // Dump x, or any other variable for that matter ob_start(); var_dump($x); $contents = ob_get_contents(); ob_end_clean(); error_log($contents,3, $logLocation);
נראה לי שהכי יעיל זה להפוך את זה לפונקציה קבועה ב-functions.php, שתקבל שני פרמטרים: שם התיקיה תחת usr, ושם המשתנה שיש לשפוך לקובץ ככה לא צריך לכתוב את 8 השורות האלה כל פעם :).
לאחר סיום מוצלח של debug יש להעביר להערות או למחוק את הקוד הכותב ל- log , ולמחוק את התיקייה שיצרנו בסעיף 1 (אלא אם כן ה- logging נחוץ לתפעול היום יומי של התוכנית)
תגובה 1 על “כתיבה ללוג ב-WordPress”