คนตัดไม้ใน Java คืออะไรและทำไมคุณถึงใช้?



บทความเกี่ยวกับ Logger ใน Java นี้เป็นคำแนะนำที่ครอบคลุมเกี่ยวกับ Java Logging API ที่ใช้สำหรับโซลูชันการบันทึกขณะสร้างโปรเจ็กต์

การบันทึกเป็นคุณสมบัติที่สำคัญซึ่งต้องได้รับการพิจารณาจากนักพัฒนาเพื่อตรวจสอบย้อนกลับข้อผิดพลาด ซึ่งเป็นภาษาโปรแกรมที่ได้รับความนิยมมากที่สุดภาษาหนึ่งมาพร้อมกับวิธีการบันทึกที่ปรับแต่งได้โดยจัดเตรียม API การบันทึกขั้นพื้นฐาน ดังนั้นในบทความเกี่ยวกับ Logger ใน Java นี้ฉันจะพูดถึงวิธีการ สามารถใช้คุณสมบัตินี้เพื่อเปิดใช้งานการบันทึกแบบขยายได้ใน Java

หัวข้อต่อไปนี้จะกล่าวถึงในบทความนี้:





    1. จำเป็นสำหรับการบันทึก
    2. ส่วนประกอบการบันทึก
    3. Logger คืออะไร?
    4. Appender หรือ Handlers
    5. เค้าโครงหรือรูปแบบ

ก่อนหน้านี้เราเจาะลึกในการเข้าสู่ระบบ java ให้เราเข้าใจถึงความจำเป็นในการบันทึก

จำเป็นสำหรับการบันทึก

ในขณะที่สร้างแอปพลิเคชันเรามักจะพบข้อผิดพลาดที่ต้องแก้ไข ดังนั้นด้วยความช่วยเหลือของบันทึกเราสามารถรับข้อมูลเกี่ยวกับสิ่งที่เกิดขึ้นในแอปพลิเคชันได้อย่างง่ายดายพร้อมบันทึกข้อผิดพลาดและสถานการณ์ที่ผิดปกติ ตอนนี้คุณอาจคิดว่าทำไมไม่ใช้คำสั่ง System.out.print () ใน . ปัญหาของคำสั่งเหล่านี้คือข้อความบันทึกจะถูกพิมพ์บนคอนโซลเท่านั้น ดังนั้นเมื่อคุณปิดคอนโซลโดยอัตโนมัติบันทึกทั้งหมดจะหายไป ดังนั้นบันทึกจะไม่ถูกจัดเก็บอย่างถาวรและจะแสดงทีละรายการเนื่องจากเป็นสภาพแวดล้อมแบบเธรดเดียว



เพื่อหลีกเลี่ยงปัญหาดังกล่าวการเข้าสู่ระบบ Java จะง่ายขึ้นด้วยความช่วยเหลือของไฟล์API ให้ผ่านไฟล์java.util.loggingแพคเกจและorg.apache.log4j. *แพ็คเกจ

ส่วนประกอบการบันทึก

คอมโพเนนต์การบันทึก Java ช่วยนักพัฒนาในการสร้างบันทึกส่งผ่านบันทึกไปยังปลายทางที่เกี่ยวข้องและรักษารูปแบบที่เหมาะสม องค์ประกอบสามส่วนต่อไปนี้:

  • คนตัดไม้ - รับผิดชอบในการบันทึกบันทึกและส่งต่อไปยัง Appender ที่เกี่ยวข้อง
  • ภาคผนวกหรือตัวจัดการ - มีหน้าที่บันทึกเหตุการณ์ในบันทึกไปยังปลายทาง ภาคผนวกจัดรูปแบบเหตุการณ์ด้วยความช่วยเหลือของเลย์เอาต์ก่อนที่จะส่งเอาต์พุต
  • เค้าโครงหรือรูปแบบ - รับผิดชอบในการพิจารณาว่าข้อมูลมีลักษณะอย่างไรเมื่อปรากฏในรายการบันทึก

คุณสามารถดูภาพด้านล่างสำหรับการทำงานของส่วนประกอบทั้งสาม:



ส่วนประกอบการบันทึก - ตัวบันทึกใน Java - Edureka

การแบ่งบรรทัดใน html คืออะไร

เมื่อแอปพลิเคชันทำการโทรบันทึกคอมโพเนนต์ Logger จะบันทึกเหตุการณ์ใน LogRecord และส่งต่อไปยัง Appender ที่เหมาะสม จากนั้นจัดรูปแบบบันทึกโดยใช้เค้าโครงตามรูปแบบที่ต้องการ นอกจากนี้คุณยังสามารถใช้ตัวกรองมากกว่าหนึ่งตัวเพื่อระบุว่าควรใช้ภาคผนวกใดสำหรับเหตุการณ์

ตอนนี้ให้เราเข้าใจว่าคนตัดไม้ใน Java คืออะไรในเชิงลึก

Logger ใน Java คืออะไร?

Loggers ใน Java เป็นอ็อบเจ็กต์ที่ทริกเกอร์เหตุการณ์บันทึกซึ่งถูกสร้างขึ้นและถูกเรียกใช้ในโค้ดของแอพพลิเคชั่นซึ่งจะสร้าง Log Events ก่อนที่จะส่งต่อไปยังคอมโพเนนต์ถัดไปซึ่งเป็น Appender คุณสามารถใช้ผู้บันทึกหลายคนในคลาสเดียวเพื่อตอบสนองต่อเหตุการณ์ต่างๆหรือใช้ Loggers ตามลำดับชั้น โดยปกติจะตั้งชื่อโดยใช้เนมสเปซที่คั่นด้วยจุดตามลำดับชั้น นอกจากนี้ชื่อ Logger ทั้งหมดต้องเป็นไปตามคลาสหรือชื่อแพ็กเกจของคอมโพเนนต์ที่บันทึก

นอกเหนือจากนี้ Logger แต่ละตัวยังติดตามบรรพบุรุษที่มีอยู่ใกล้ที่สุดในไฟล์ บันทึก เนมสเปซและยังมี 'ระดับ' ที่เกี่ยวข้องด้วย ฉันจะพูดถึง Loggers ในส่วนหลังของบทความนี้ แต่ก่อนหน้านั้นให้ฉันแสดงวิธีสร้าง Logger ใน Java

สร้าง Logger ใหม่

ขั้นตอนการสร้าง Logger ใหม่ใน Java นั้นค่อนข้างง่าย คุณต้องใช้Logger.getLogger ()วิธี.getLogger () ระบุชื่อของ Logger และรับสตริงเป็นพารามิเตอร์ ดังนั้นหาก Logger มีอยู่ก่อนแล้ว Logger นั้นจะถูกส่งคืนมิฉะนั้น Logger ใหม่จะถูกสร้างขึ้น

ไวยากรณ์:

คนตัดไม้แบบคงที่ = Logger.getLogger (SampleClass.class.getName ())

ที่นี่ SampleClass คือชื่อคลาสที่เราได้รับวัตถุ Logger

ตัวอย่าง:

คลาสสาธารณะ Customer {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

ตอนนี้ฉันได้บอกวิธีสร้าง Logger ใน Java แล้วให้เราดูระดับต่างๆที่มีอยู่ในการบันทึก

ระดับการบันทึก

ระดับบันทึกใช้เพื่อจัดหมวดหมู่บันทึกตามความรุนแรงหรือผลกระทบต่อความเสถียรของแอปพลิเคชันorg.apache.log4j. *แพคเกจและjava.util.loggingทั้งสองมีระดับการบันทึกที่แตกต่างกัน ให้เราดูทีละคน

org.apache.log4j. *แพ็คเกจจัดเตรียมระดับต่อไปนี้ตามลำดับจากมากไปหาน้อย:

  • FATAL
  • ข้อผิดพลาด
  • เตือน
  • ข้อมูล
  • แก้ปัญหา

java.util.loggingแพ็คเกจจัดเตรียมระดับต่อไปนี้ตามลำดับจากมากไปหาน้อย:

ขนาดของอาร์เรย์จาวาสคริปต์
  • SEVERE (ระดับสูงสุด)
  • คำเตือน
  • ข้อมูล
  • กำหนดค่า
  • ละเอียด
  • FINER
  • FINEST (ระดับต่ำสุด)

นอกเหนือจากนี้แพ็คเกจข้างต้นยังมีระดับเพิ่มเติมอีกสองระดับทั้งหมดและปิดใช้สำหรับบันทึกข้อความทั้งหมดและปิดใช้งานการบันทึกตามลำดับ

ตัวอย่างการเข้าสู่ระบบ Java โดยใช้ไฟล์org.apache.log4j. *แพ็คเกจ:

import org.apache.log4j.Logger public class Customer {static Logger logger = Logger.getLogger (Customer.class) public static void main (String [] args) {logger.error ('ERROR') logger.warn ('WARNING' ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('ผลลัพธ์สุดท้าย')}}

ดังนั้นหากผลลัพธ์ของคุณคือroot logger เป็นระดับ WARN ในไฟล์ log4j.properties จากนั้นข้อความแสดงข้อผิดพลาดทั้งหมดที่มีลำดับความสำคัญสูงกว่า WARN จะถูกพิมพ์ออกมาดังนี้:

คุณยังสามารถตั้งค่าระดับโดยใช้เมธอด setLevel () จากไฟล์java.util.loggingแพคเกจด้านล่าง:

logger.setLevel (ระดับคำเตือน)

ตัวอย่างการเข้าสู่ระบบ Java โดยใช้ไฟล์java.util.loggingแพ็คเกจ:

package edureka import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import java.util.logging. * class EdurekaLogger {private final static Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) สาธารณะ เป็นโมฆะ sampleLog () {LOGGER.log (Level.WARNING, 'Welcome to Edureka!')}} คลาสสาธารณะ Customer {public static void main (String [] args) {EdurekaLogger obj = new EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () Logger log = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Level.WARNING, 'สวัสดี! ยินดีต้อนรับจาก Edureka')}}

ในการเปิดใช้งานการเข้าสู่ระบบแอปพลิเคชันของคุณโดยใช้ไฟล์org.apache.log4j. *แพคเกจหรือjava.util.loggingคุณต้องกำหนดค่าไฟล์คุณสมบัติ ถัดไปในบทความเกี่ยวกับ Logger ใน Java นี้ให้เราพูดคุยเกี่ยวกับไฟล์คุณสมบัติของทั้งสองไฟล์

ไฟล์คุณสมบัติของ Log4j และ Java Util Package

ตัวอย่างไฟล์คุณสมบัติ Log4j:

# เปิดใช้งานอ็อพชัน root logger log4j.rootLogger = INFO, file, stdout # แนบ appenders เพื่อพิมพ์ไฟล์ 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 Package

handlers = java.util.logging.ConsoleHandler .level = WARNING # เอาต์พุตจะถูกเก็บไว้ในไดเร็กทอรีเริ่มต้น 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 # ระดับของบันทึกจะถูก จำกัด ไว้ที่ WARNING ขึ้นไป java.util.logging.ConsoleHandler.level = คำเตือน java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

ที่นี่

การแสดงภาพข้อมูลในฉากหลังคืออะไร
  • 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 Formatter
  • java.util.logging.ConsoleHandler.level = WARNING -> ตั้งค่าระดับการบันทึกเริ่มต้นเป็นคำเตือน
  • 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 นั่นคือภาคผนวก

Appender หรือ Handlers

Appender หรือ Handlers มีหน้าที่บันทึกเหตุการณ์บันทึกไปยังปลายทาง คนตัดไม้แต่ละคนมีสิทธิ์เข้าถึงตัวจัดการหลายตัวและรับข้อความบันทึกจากคนตัดไม้ จากนั้นภาคผนวกใช้รูปแบบหรือเลย์เอาต์เพื่อจัดรูปแบบเหตุการณ์และส่งไปยังปลายทางที่เกี่ยวข้อง

สามารถปิด Appender ได้โดยใช้เมธอด setLevel (Level.OFF) ตัวจัดการมาตรฐานที่สุดสองตัวในjava.util.loggingแพคเกจมีดังนี้:

  • FileHandler: เขียนข้อความบันทึกลงในไฟล์
  • คอนโซล เขียนข้อความบันทึกลงในคอนโซล

สำหรับความเข้าใจที่ดีขึ้นของคุณฉันได้อธิบายภาคผนวกบางส่วนในส่วนคุณสมบัติ

เค้าโครงหรือรูปแบบ

เค้าโครงของ Formatters ใช้เพื่อจัดรูปแบบและแปลงข้อมูลในเหตุการณ์บันทึกเฟรมเวิร์กการบันทึกจัดเตรียมเลย์เอาต์สำหรับ HTML, XML, Syslog, JSON, ข้อความธรรมดาและบันทึกอื่น ๆ

  1. SimpleFormatter : สร้างข้อความที่มีข้อมูลพื้นฐาน
  2. XMLFormatter : สร้างข้อความ XML สำหรับบันทึก

สำหรับความเข้าใจที่ดีขึ้นของคุณฉันได้อธิบายเลย์เอาต์บางส่วนในส่วนคุณสมบัติด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบล็อกนี้ในเรื่อง“ Logger in Java” ฉันหวังว่าพวกคุณจะชัดเจนกับสิ่งที่ได้รับการสอนกับคุณในบทความนี้

ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อก 'Logger in Java' และเราจะติดต่อกลับโดยเร็วที่สุด