Java มี Logging framework ของตัวเองอยู่แล้ว

การพัฒนาระบบ ยังไงก็หนีไม่พ้นการทำหล็อก (log) ซึ่งในจาวา เฟรมเวิร์คที่โด่งดังก็คงเป็นหล็อกโฟร์เจ (Log4j) กับ หล็อกแบ๊ค (Logback) ซึ่งคนทำหล็อกโฟร์เจย้ายไปทำ แต่ถ้าไม่ต้องการความยืดหยุ่นระดับการปรับฟอร์แมตของข้อความด้วยคอนฟิกไฟล์ (config file) หรือการแสดงผลสีที่แตกต่างกันในแต่ละระดับของหล็อก (Log level) ในจาวาเองก็มีระบบหล็อกอยู่แล้ว คือ จาวาหล็อกกิ้ง (Java Logging)

การใช้งานก็จะคล้ายๆกับเฟรมเวิร์คที่กล่าวมา คือ ดึงหล็อกเกอร์ (logger) ออกมาแล้วแสดงผลตามระดับ ซึ่งระดับ ALL, OFF, SEVERE, WARNING, INFO, FINE, FINER และ FINEST คงพอเดาความหมายของแต่ละระดับได้นะ

  • log = Logger.getLogger(<ชื่อหล็อกเกอร์หรือคลาส>)
  • log.<ระดับ>(“ข้อความ”) -> ถ้าไม่ต้องการแสดงผลค่าจากตัวแปร
  • log.log(Level.<ระดับ>, “ข้อความที่จะแสดง {0} …”, <ตัวแปร 1> ) -> แสดงผล 1 ตัวแปร
  • log.log(Level.<ระดับ>, “ข้อความที่จะแสดง {0} {1} …”, new Object[] { <ตัวแปร 1>, <ตัวแปร 2>, … }) -> แสดงผลมากกว่า 1 ตัวแปร

ถ้าไม่พอใจรูปแบบข้อความก็สามารถเขียนตัวจัดรูปแบบได้เอง โดยสร้างคลาสที่ extends Formatter และเม็ทเถิด formatMessage(record) ช่วยในการแสดงผล

โดยค่าเริ่มต้นเจอาร์อี (JRE) จะตั้งไว้ที่ INFO เราสามารถปรับได้โดยสร้างพร็อพเพอร์ตี้ส์ไฟล์ (properties file) และเซ็ตชื่อไฟล์เข้ามาในซิสเท็มพร็อพเพอร์ตี้ -Djava.util.logging.config.file=<ชื่อไฟล์> ได้ ซึ่งเซ็ตได้ทั้งแฮนดเลอร์ (handler) ว่าจะออกคอนโซล (console) ไฟล์ หรือแม้กระทั่งผ่านเครือข่ายไป (stream)

สแลช (SLASH)

Advertisements

One thought on “Java มี Logging framework ของตัวเองอยู่แล้ว

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s