הפעם אשמח לשתף בתהליך לא מסובך להגדרת קובץ log אישי ב- OpenHAB, שאליו ניתן להכניס שורות מתוך חוקים.
הרבה פעמים ראיתי הודעת לוג מסויימת (שאני הגדרתי באחד החוקים) אבל תהיתי כמה פעמים היא קרתה ביממה האחרונה או האם זה חד פעמי? או למשל קמתי בבוקר עם תריסים פתוחים ותהיתי מה גרם לפתיחה שלהם?
בשני המקרים יכולתי כמובן לפתוח את openhab.log אבל הייתי טובע במאות שורות לוג ולכן אפילו לא ניסיתי.
ע"י יצירת קובץ לוג נוסף אני יכול להחליט מה לתעד לאיזה קובץ, להשאיר את הקובץ שלי נקי מהאירועים הגנריים ב- OH מבלי לפגוע ברמת התיעוד של המערכת עצמה, ולאפשר הבנה טובה יותר של מה קורה בבית החכם.
ראשית חשוב לי לציין שהקרדיט הוא לא לי, העבודה מבוססת על מס' שרשורים בפורום של OH וכן על התיעוד הרשמי של תהליך ה- Logging במערכת:
https://www.openhab.org/docs/administra ... gging.html
https://community.openhab.org/t/logging ... b-3/105784
הערה חשובה: התהליך שיתואר כאן מתאים ל- OH3 ומעלה בלבד. זאת מכיוון שבמעבר לגרסה 3 שינו את הפורמט של הקובץ שמגדיר למערכת מה לתעד ואיפה. מכיוון שאני כבר עברתי גרסה לא השקעתי מאמץ בלהבין איך זה היה אמור להיעשות ב- 2.5, אבל מצאתי לא מעט שרשורים על כך בפורום של OH. מי שזה רלוונטי אליו מוזמן לחפש custom logging בפורום.
עוד הערה חשובה: מיקומי הקבצים שיוזכרו כאן מבוססים על התקנת openhabian סטנדרטית. בכל שיטת התקנה אחרת (ידנית, win וכו') המיקום של הקבצים יהיה שונה אבל העקרונות אמורים להיות זהים.
לעסק...
הגדרת המטרה:
יצירת לוג אישי (אחד או יותר) לטובת תיעוד של פעולות שונות מתוך החוקים, מבלי להיות מוצפים בכל האירועים שרצים ב- OH ובכך לשמור על רשימה קצרה וממוקדת שניתן להפיק ממנה תובנות או לזהות כשלים ולאפשר תהליך debug.
כמו כן יצירת דרך קלה לצפות בקבצי הלוג החדשים.
שלב ראשון: הגדרת הלוגר החדש
בשלב זה נערוך את הקובץ log4j2.xml שנמצא תחת /var/lib/openhab/etc
מי שניגש לקבצים דרך SAMBA, הקובץ יופיע תחת openHAB-userdata\etc
הדבר הראשון שחשוב לבדוק הוא האם מופיע לכם בשורה הראשונה של הקובץ הערך הבא:
קוד: בחירת הכל
<Configuration monitorInterval="10">
הקוד הזה יאפשר לכם בהמשך לבצע שינויים בקובץ מבלי להיות צריכים להפעיל מחדש את OH כדי שהשינויים ייכנסו לתוקף.
בהמשך, בקובץ זה תמצאו שני מקטעים עיקריים:
Appenders ו- Loggers.
לשני חלקים אלה יש להוסיף קטע קוד קצר. חשוב מאוד להוסיף אותו בסוף כל מקטע
למקטע ה- Appenders נוסיף:
קוד: בחירת הכל
<!-- My Log appender -->
<RollingRandomAccessFile append="true" fileName="${sys:openhab.logdir}/mylog.log" filePattern="${sys:openhab.logdir}/mylog.log.%i" immediateFlush="true" name="MYLOG">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] - %m%n</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
<DefaultRolloverStrategy max="8"/>
</RollingRandomAccessFile>
בכל מקום שרשום בשורה הראשונה "mylog" תעדכנו לשם הרצוי לכם, וכן את שדה name בשורה זו.
עוד תוכלו לשחק עם הפורמט של כל שורה שמופיע תחת שדה pattern.
למידע נוסף על ה- syntax תוכלו לקרוא בתיעוד הרשמי:
http://www.slf4j.org/manual.html
(בשלב זה לא נכנסתי כל כך לעומק ודי התבססתי על מה שהיה עם התאמה מינורית שלי)
למקטע ה- Loggers נוסיף את:
קוד: בחירת הכל
<!-- My Log Logger -->
<Logger additivity="false" level="DEBUG" name="org.openhab.core.model.script.mylog">
<AppenderRef ref="MYLOG"/>
</Logger>
בשורה השניה אתם מקשרים את הלוגר החדש להגדרת ה- Appender שיצרתם במקטע הקודם- הערך צריך להתאים למה שרשמתם תחת name קודם.
זהו- הגדרתם קובץ לוג חדש.
על מנת להכניס לו שורה מאחד החוקים, יש להשתמש בפקודת log עם שם הלוגר שבחרתם. למשל:
קוד: בחירת הכל
logInfo("mylog",<message>)
שלב שני: התאמת VSC לצפייה בקבצי הלוג החדשים
כמובן שיש עוד דרכים אך בגלל שאני עובד עם VSC היה לי מאוד נוח גם לצפות שם בלוג.
גם כאן הקרדיט הוא לא לי, מצאתי מדריך מאוד פשוט ומדוייק (לינק בהמשך).
קודם כל למי שלא מופיעה לו ב- SAMBA תיקיית openHAB-logs, סביר להניח שההגדרה נמצאת אבל סומנה כהערה (כך זה היה אצלי).
יש להיכנס לקובץ ההגדרה של SAMBA:
קוד: בחירת הכל
sudo nano /etc/samba/smb.conf
ואם אתם כבר כאן, תבצעו את הצעד הראשון במדריך מהלינק והוא להוסיף לחלק הזה את השורה הבאה:
קוד: בחירת הכל
opslock = false
קוד: בחירת הכל
[openHAB-logs]
comment=openHAB log files
path=/var/log/openhab
writeable=yes
public=no
create mask=0664
directory mask=0775
veto files = /Thumbs.db/.DS_Store/._.DS_Store/.apdisk/._*/
delete veto files = yes
opslock = false
https://community.openhab.org/t/howto-w ... ian/110864
המדריך עושה שימוש בתוסף ל- VSC שנקרא Log Viewer. שימו לב רק לעדכן בהגדרה של התוסף את ה- IP של המערכת שלכם וכן להוסיף הגדרה לכל קובץ לוג נוסף שתרצו לצפות בו.
לסיכום:
יצירת קובץ לוג אישי היה משהו שחשבתי עליו הרבה זמן. החלטתי לתרגם ולהנגיש את התהליך כדי שעוד אנשים יוכלו להרוויח מהידע שצברתי כי זה פיצ'ר מאוד שימושי לטעמי.
שימוש נעים.