מה מוסיף? מוריד...
אה, שכחתי להגיד, הLogger של log4j עטוף, בlogger משלנו, כך שכל מה שאני צריך לעשות זה להוסיף עוד חתימה עםlambda וזהו, ואני יכול להוריד את כל הif.. (זה המון עבודה שחורה שלא יתנו לי לעשות אותה עכשיו) אבל קראתי שיש אנשים שאפילו חיפשו דרכים להוריד מcoverage חתיכות של getter setter.
 
בעיקרון log4j2 עושה את זה בשבילי
 
http://logging.apache.org/log4j/2.x/manual/api.html#LambdaSupport
 
רק הבעיה היא שאנחנו משתמשים בDOMConfigurator כדי לקנפג אותו (יש לנו אפילו Log4j.xsd מקוסטם שהיה חסר לו חלק מהדברים, כגוןfilter של appender).
 
ואתה חושב שעל זה הייתי צריך לעמוד בפינה ? הlogger מבצע בבנאי שלו את...
StackTraceElement[] stack = Thread.currentThread().getStackTrace();
StackTraceElement caller = stack[3];
caller.getClassname .. בשביל לדעת את שם המחלקה שהוא רץ
אם אני לא טועה זה לא אמור לזרוק exception בפנים כל פעם כדי לדעת את זה?
 
עוד פנינה? כשהגעתי היינו לנו עשרות מקומות שכאשר נתפסה בה exception הם רשמו רק את ההודעה של exception ללא שום stacktrace, כולל... מקרים של... NPE, בבקשה לך תמצא מאיפה זה מגיע בבלוק של 30 שורות. כשרצינו לשנות את זה גלובלית, התנגדו בטענה זה "לא נראה טוב ללקוח" או, (אני כבר לא זוכר) אבטחה.
 
כשרציתי לעשות את זה גם בwarn שנמצאים בcatch, עצרו אותי לגמרי, כי זה לא נראה טוב למישהי אצלנו וזה סתם עיצבן אותה לראות את ב console, הפשרה היחידה שהצלחתי לחלץ זה להוסיף במעטפת ה- Logger איזה systemProperty שאוכל להדליק לפחות בIDE שלי כדי שאני אוכל לראות בעיות. (זה פחות עוזר לי אם QA נתקלים בבעיות ולא אני לא יכול לראות את זה שם).
ולפני שתשאל מדוע לא להפוך כל warn של Exception ל error, יש לנו מערכות regression אוטומטיות שמפילות כל טסט על המילה error בלוג (או יותר התבנית error בלוג).
 
אני תמיד מזכיר את מקום העבודה הקודם שלי בתור חווייה מזככת שגרמה לי לגדל עור שלי פיל, אז כבר אני לא מתפלא על כלום כי "הכל שטויות" כמו שמישהו שם אמר.
 
אבל כאן המצב טוב לאין שיעור משם. כאן לפחות עברנו לjava8. כאן יש לנו wish list ארוך לשיפורים (אחת מהמשימות הייתה לעבור ולסדר את ההודעות הלוגים ולהציף פחות) ,רשימה שאני לא מאמין שנבצע אפילו שבריר ממנה, אבל זה נחמד שיש חלומות ורצון להתקדם.