מה זה לוגר ב- Java ומדוע אתה משתמש בו?



מאמר זה בנושא לוגר ב- Java הוא מדריך מקיף על ממשק ה- API לרישום Java המשמש לפתרונות רישום בעת יצירת פרויקטים.

רישום הוא תכונה חשובה אשר המפתחים צריכים לקחת בחשבון כדי לאתר את השגיאות. , בהיותה אחת משפות התכנות הפופולריות ביותר, מגיעה עם גישה ניתנת להתאמה אישית לרישום באמצעות ממשק API לכניסה רישום בסיסי. לכן, במאמר זה על לוגר ב- Java, אני הולך לדון כיצד יכול להשתמש בתכונה זו כדי לאפשר רישום להרחבה ב- Java.

הנושאים הבאים יוסרו במאמר זה:





כיצד לגשת אל cls aws
    1. צורך בכריתת עצים
    2. רכיבי רישום
    3. מה זה לוגר?
    4. Appender או מטפלים
    5. פריסה או מעצבים

לפני כן אנו צוללים עמוק לתוך כניסה לג'אווה, בואו נבין את הצורך בכניסה.

צורך בכריתת עצים

בעת בניית יישומים, לעתים קרובות אנו מתמודדים עם שגיאות שיש לבצע ניפוי באגים. אז בעזרת יומנים אנו יכולים לקבל מידע בקלות על המתרחש ביישום עם תיעוד של שגיאות ונסיבות חריגות. עכשיו, זה עשוי להכות את דעתך כי מדוע לא להשתמש בהצהרה System.out.print () ב . ובכן, הבעיה בהצהרות אלו היא שהודעות יומן יודפסו רק על המסוף. לכן, ברגע שתסגור את המסוף באופן אוטומטי, כל היומנים יאבדו. לכן, יומני לא יאוחסנו לצמיתות, והם מוצגים בזה אחר זה, מכיוון שמדובר בסביבה בעלת הברגה אחת.



כדי להימנע מבעיות כאלה, הכניסה לג'אווה מפשטת בעזרת ה-ממשק API המסופק דרךjava.util.loggingחבילה, ואתorg.apache.log4j. *חֲבִילָה.

רכיבי רישום

רכיבי הרישום של Java עוזרים למפתח ליצור יומנים, להעביר את היומנים ליעד המתאים ולשמור על פורמט תקין. להלן שלושת המרכיבים:

  • חוטבי עצים - אחראי על לכידת רשומות יומנים והעברתם למקבל המתאים.
  • מורשים או מטפלים - הם אחראים על רישום אירועי יומן יעד. המועמדים מעצבים אירועים בעזרת פריסות, לפני שליחת תפוקות.
  • פריסות או מעצבים - אחראי לקבוע כיצד הנתונים נראים כשהם מופיעים בערך היומן.

אתה יכול להתייחס לתמונה למטה לעבודה של שלושת המרכיבים:



רכיבי רישום - לוגר בג

כאשר יישום מבצע שיחת רישום, רכיב לוגר מתעד את האירוע ב- LogRecord ומעביר אותו אל ה- Appender המתאים. ואז הוא יצר את הרשומה באמצעות הפריסה לפי הפורמט הנדרש. מלבד זאת, תוכל גם להשתמש ביותר ממסננים כדי לציין אילו משתמשים יש להשתמש באירועים.

עכשיו, בואו נבין מה זה לוגר ב- Java לעומק.

מה זה לוגר ב- Java?

לוגרים בג'אווה הם אובייקטים שמפעילים אירועי יומן, הם נוצרים ונקראים בקוד היישום, שם הם יוצרים אירועי יומן לפני שהם מעבירים אותם לרכיב הבא שהוא Appender. באפשרותך להשתמש במספר רישומי עצים בכיתה אחת כדי להגיב לאירועים שונים או להשתמש בלוגרים בהיררכיה. הם נקראים בדרך כלל באמצעות מרחב השמות ההיררכי המופרד בנקודות. כמו כן, כל שמות הלוגר חייבים להיות מבוססים על המחלקה או שם החבילה של הרכיב המחובר.

מלבד זאת, כל לוגר שומר על המעקב אחר האב הקדמון הקרוב ביותר ב יומנים מרחב שמות ויש לו גם 'רמה'. ובכן, אדון בלוגרים בחלק האחרון של מאמר זה, אך לפני כן, הרשו לי להראות לכם כיצד ליצור לוגר ב- Java.

צור לוגר חדש

תהליך יצירת לוגר חדש בג'אווה הוא פשוט למדי. אתה צריך להשתמשLogger.getLogger ()שיטה. הgetLogger () מזהה את שם הלוגר ולוקח מחרוזת כפרמטר. לכן, אם לוגר קיים מראש, אותו לוגר מוחזר, אחרת נוצר לוגר חדש.

למידת מכונה לדוגמא

תחביר:

לוגר לוגר סטטי = Logger.getLogger (SampleClass.class.getName ())

כאן, SampleClass הוא שם המחלקה שעבורו אנו מקבלים את האובייקט לוגר.

דוגמא:

מחלקה ציבורית לקוח {פרטית סטטית סופית לוגר LOGGER = Logger.getLogger (Customer.class) חלל ציבורי getCustomerDetails () {}}

עכשיו, כשאמרתי לך כיצד ליצור לוגר ב- Java, הבה נראה את הרמות השונות הקיימות ביומן.

רמות יומן

רמות יומן משמשות לסיווג היומנים לפי חומרתם או ההשפעה על יציבות היישום. הorg.apache.log4j. *החבילה וה-java.util.loggingשניהם מספקים רמות רישום שונות. בואו נסתכל על כל אחד מהם אחד אחד.

org.apache.log4j. *החבילה מספקת את הרמות הבאות בסדר יורד:

  • קָטלָנִי
  • שְׁגִיאָה
  • לְהַזהִיר
  • מידע
  • לנפות

java.util.loggingהחבילה מספקת את הרמות הבאות בסדר יורד:

  • חמור (הרמה הגבוהה ביותר)
  • אַזהָרָה
  • מידע
  • CONFIG
  • בסדר גמור
  • FINER
  • FINEST (LEVEL LOWEST)

מלבד זאת, החבילה הנ'ל מספקת גם שתי רמות נוספותאת כלוכבוימשמש לרישום כל ההודעות ולהשבתת רישום בהתאמה.

דוגמה לכניסה ל- Java באמצעות ה-org.apache.log4j. *חֲבִילָה:

יבוא org.apache.log4j.Logger מחלקה ציבורית לקוח {סטוגר לוגר לוגר = Logger.getLogger (Customer.class) סטטי ציבורי ריק ריק (String [] args) {logger.error ('ERROR') logger.warn ('אזהרה') ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('פלט סופי')}}

אז אם התפוקה שלך היאלוגר שורשים כ- WARN ברמת שלנו log4j.properties קובץ, ואז כל הודעות השגיאה עם עדיפות גבוהה יותר מ- WARN יודפסו כמפורט להלן:

ניתן גם להגדיר את הרמה באמצעות שיטת setLevel () מה-java.util.loggingחבילה כמפורט להלן:

logger.setLevel (רמה.אזהרה)

דוגמה לכניסה ל- Java באמצעות ה-java.util.loggingחֲבִילָה:

חבילה edureka יבוא java.io.IO חריג יבוא java.util.logging.Level ייבוא ​​java.util.logging.Logger ייבוא ​​java.util.logging. * מחלקה EdurekaLogger {פרטי סופי לוגר לוגר LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) ציבורי void sampleLog () {LOGGER.log (Level. אזהרה, 'ברוך הבא ל- Edureka!')}} לקוח בכיתה ציבורית {main public public static (String [] args) {EdurekaLogger obj = new EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () יומן רישום = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (רמה. אזהרה, 'שלום! ברוך הבא מאדוריקה')}}

כדי לאפשר כניסה ליישום שלך באמצעותorg.apache.log4j. *חבילה אוjava.util.loggingחבילה, עליך להגדיר את קובץ המאפיינים. בהמשך במאמר זה בנושא לוגר ב- Java, הבה נדון בקובץ המאפיינים של שניהם.

קובץ מאפיינים של Log4j ו- Java Util Package

קובץ מאפייני Log4j לדוגמא:

# אפשר אפשרות רושם שורשים log4j.rootLogger = INFO, קובץ, stdout # צרף תוספים להדפסת קובץ log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender. file.MaxFileSize = 10MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm : ss}% -5p% c {1}:% L -% m% n # צרף מורידים להדפסה במסוף log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • קובץ המאפיינים Log4j נוצר בתוך תיקיית src של הפרויקט.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> מדפיס את כל היומנים בקובץ
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> מדפיס את כל היומנים במסוף
  • log4j.appender.file.File = D: loglogging.log -> מציין את מיקום קובץ היומן
  • log4j.appender.file.MaxFileSize = 10MB -> הגודל המקסימלי של קובץ היומן ל- 10MB
  • log4j.appender.file.MaxBackupIndex = 5 -> מגביל את מספר קבצי הגיבוי ל -5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> מציין את התבנית בה יודפסו יומני הקובץ.
  • log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> קובע את דפוס ההמרה המוגדר כברירת מחדל.

לִטעוֹם קובץ מאפייני חבילה של Java Util

מטפלים = java.util.logging.ConsoleHandler .level = אזהרה # הפלט יישמר בספריית ברירת המחדל java.util.logging.FileHandler.pattern =% h / java% u.log java.util.logging.FileHandler.limit = 60000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # רמת היומנים תוגבל לאזהרה ומעלה. java.util.logging.ConsoleHandler.level = אזהרה java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

כאן,

קרא את קובץ ה- XML ​​בדוגמת Java
  • java.util.logging.FileHandler.pattern =% h / java% u.log -> קבצי יומן יכתבו אלC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->הסכום המקסימלי שכותב לוגר לכל קובץ אחד בתים.
  • java.util.logging.FileHandler.count = 1 -> מציין את מספר קבצי הפלט
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> מזכיר את המעצב המשמש לעיצוב. כאן נעשה שימוש בעיצוב XML.
  • java.util.logging.ConsoleHandler.level = אזהרה -> מגדיר את רמת יומן ברירת המחדל ל אזהרה
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->מציין אתמעצבלשמש את כולםConsoleHandler. כאן משתמשים ב- SimpleFormatter.

אירועי רישום

כדי להתחבר לאירועים , עליכם לוודא כי אתם מקצים רמה שתספק בקלות את האירועים. כדי להקצות רמה ולהזכיר הודעה תוכלו להשתמש בשיטות הבאות:

שיטה 1:

logger.log (Level.INFO, 'הצגת הודעה')
כאן, הרמה היא INFO וההודעה להדפסה היא 'הצגת הודעה'.

שיטה 2:

logger.info ('הצג הודעה')

כדי לוודא ש- Logger ב- Java, יומן אירועים בלבד שנמצא ברמת INFO או מעלה, אתה יכול להשתמש ב- setLevel () השיטה שנדונה לעיל.

כעת, לאחר שדנתי כיצד להשתמש ב- Logger ב- Java, הבה נדון ברכיב הבא בארכיטקטורת Log4j, כלומר Appenders.

Appender או מטפלים

Appender או Handlers אחראים על רישום אירועי יומן יעד. לכל לוגר יש גישה למספר מטפלים ומקבל את הודעת היומן מהלוגר. לאחר מכן, Appenders משתמשים במעצבים או פריסות כדי לעצב את האירועים ולשלוח אותם ליעד המתאים.

ניתן לכבות Appender בשיטת setLevel (Level.OFF). שני המטפלים הסטנדרטיים ביותר ב-java.util.loggingהחבילה היא כדלקמן:

  • FileHandler: כתוב את הודעת היומן לתיקון
  • ConsoleHandler: כותב את הודעת היומן למסוף

שכן, להבנתך הטובה יותר, הסברתי על כמה מועמדים בקטע המאפיינים.

פריסה או מעצבים

הפריסה של מעצבים משמשת לעיצוב ולהמרת נתונים באירוע יומן.מסגרות רישום מספקות פריסות עבור HTML, XML, Syslog, JSON, טקסט רגיל ויומנים אחרים.

  1. SimpleFormatter : מייצר הודעות טקסט עם מידע בסיסי.
  2. XMLFormatter : מייצר הודעת XML עבור היומן

שכן, להבנתך הטובה יותר, הסברתי כמה פריסות בקטע המאפיינים.עם זאת, אנו מגיעים לסוף הבלוג הזה בנושא 'לוגר ב- Java'. אני מקווה שאתם ברורים עם מה שלימדו אתכם במאמר זה.

בדוק את מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפזורים ברחבי העולם. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה מיועד לסטודנטים ואנשי מקצוע שרוצים להיות מפתח Java. הקורס נועד לתת לך יתרון בתכנות ג'אווה ולהכשיר אותך למושגי ג'אווה מרכזיים ומתקדמים יחד עם מסגרות ג'אווה שונות כמו Hibernate & Spring.

יש לך שאלה עבורנו? אנא הזכיר זאת בסעיף ההערות בבלוג 'לוגר ב- Java' ונחזור אליך בהקדם האפשרי.