Logging best practice pada aplikasi berbasis SOA

10
Logging Best Practice Fault Handling pada aplikasi berbasis SOA

description

Logging best practice pada aplikasi berbasis SOA - Meeting Research and Development

Transcript of Logging best practice pada aplikasi berbasis SOA

Page 1: Logging best practice pada aplikasi berbasis SOA

Logging Best Practice

Fault Handling pada aplikasi berbasis SOA

Page 2: Logging best practice pada aplikasi berbasis SOA

Agenda

• Apa itu Log? Dan kenapa penting?• Jenis Log• Log Context• Log Management

Page 3: Logging best practice pada aplikasi berbasis SOA

Apa itu Log? Dan kenapa penting?• Menurut definisi wikipedia : “Computer data logging is the process of

recording event, with a computer program usually an application software in a certain scope in order to provide an audit trail that can be used to understand the activity of the system and to diagnose problems.”

• Log sangat penting dalam proses untuk mengerti aktivitas aplikasi dan mendiagnosa masalah / bug.

• Tanpa Log– Kita tidak bisa mengerti aktivitas aplikasi– Kalau ada error tidak tahu apa yang terjadi.– Akhirnya error tidak bisa diperbaiki.

Page 4: Logging best practice pada aplikasi berbasis SOA

Jenis Log

• Application Logic Log• Application Performance Log– Custom Log– JVM Thread Dump

• Application Framework Log• HTTP Access Log• OS dan DB Log• …

Page 5: Logging best practice pada aplikasi berbasis SOA

Log Framework di Java

• Java Common log API : log bawaan JDK/JRE• Log4J : standard de facto logging di Java• LogBack : dibuat oleh orang-orang pembuat

Log4J, ditujukan sebagai penerus dari Log4J.• SLF4J : API Log yang dibuat agar seragam,

apapun implementasi log dibelakangnya kode tetap sama.

Page 6: Logging best practice pada aplikasi berbasis SOA

Contoh Kode Logimport org.apache.log4j.Logger; import java.io.*; import java.sql.SQLException; import java.util.*;

public class log4jExample{ /* Get actual class name to be printed on */ static Logger log = Logger.getLogger( log4jExample.class.getName()); public static void main(String[] args) throws IOException,SQLException{ // Log severity debug // log.debug("Hello this is an debug message"); // Log severity info / information // log.info("Hello this is an info message"); } }

Page 7: Logging best practice pada aplikasi berbasis SOA

Contoh Log “Matrix” pada Rest Service Support System

Page 8: Logging best practice pada aplikasi berbasis SOA

Log Context

• Context dari Log di slide sebelumnya :– Waktu– Log Severity (INFO, ERROR)– Informasi ID, dimana aplikasi sedang memproses.– Keterangan Log / History Proses yang dilakukan.

Pertanyaan User : • Saya melakukan login kedalam sistem pada

jam 10 malam hari ini tapi gagal, apa yang terjadi?

Page 9: Logging best practice pada aplikasi berbasis SOA

Appender• Memisahkan log yang serupa dalam satu file yang sama • Memudahkan analysis

# Root logger optionlog4j.rootLogger=INFO, file # Direct log messages to a log filelog4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=C:\\glassfish3\\glassfish\\domains\\domain1\\logs\\SSWebAPI\\SSWebAPI.loglog4j.appender.file.MaxFileSize=10MBlog4j.appender.file.MaxBackupIndex=10log4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n

Page 10: Logging best practice pada aplikasi berbasis SOA

Resources

• http://endy.muhardin.googlepages.com/minibook-log4j.pdf