Apa itu log4j ?

Posted: July 29, 2011 in Log4j
Tags: , , , , ,

Sesuai judul log4j adalah sebuah library yang dibuat oleh Apache, yang berfungsi untuk mencetak suatu log. Log itu maksudnya suatu pesan, isi variable atau apapun yang berhubungan dengan program. Dalam membuat program, kita pasti pernah kan menulis System.out.println(“masuk fungsi xxx”); Nah log4j ini fungsinya sama seperti itu.

Mungkin kalian akan bertanya-tanya dalam hati, kalau bisa pakai System.out.println lalu kenapa harus menggunakan library tambahan. Ya untuk aplikasi console mungkin bisa, tetapi bagaimana untuk aplikasi web ? Jika kita sebagai programmer diberi hak akses untuk mengakses data server (dalam hal ini file catalina.out) tentu kita tidak perlu menggunakan log4j, cukup hanya dengan menggunakan System.out.println saja.

Namun bila kita tidak memiliki hak akses untuk membuka file catalina.out, maka kita dapat membuat suatu file log di directory yang dapat kita akses dengan menggunakan log4j. Sampai disini pasti kalian bertanya-tanya lagi, mengapa tidak membuat file dengan menggunakan PrintWriter atau class lainnya yang sudah disediakan oleh Java untuk menulis ke file? Ya, dengan menggunakan class yang disediakan oleh Java juga bisa. Tapi dengan syarat kalian mau repot2 menulis berbaris-baris code untuk melakukan fungsi membuat dan menulis file.

Kemudian bagi yang sudah mendalami java pasti tau kalau Java itu sendiri sudah menyediakan suatu fasilitas logging yang berada di java.util.logging.* . Lalu kenapa kita harus menggunakan library tambahan log4j ? Karena lo4j memiliki beberapa kelebihan bila dibangingkan dengan logging milik Java, seperti terdiri dari berbagai level logging, berbagai appender, format log message fleksibel, mendukung multithreading dan mendukung aplikasi multiclient. Apalagi log4j merupakan keluaran Apache, jadi sudah tidak diragukan lagi kredibilitasnya.😀

Sudah cukup basa-basinya, sekarang lansung praktek saja. Download library lo4j di http://logging.apache.org/log4j/1.2/download.html. Lalu masukkan library tersebut ke dalam project kalian. Untuk dapat menggunakan log4j kita harus membuat file konfigurasi log4j.properties.

Buatlah sebuah file bernama log4j.properties di dalam package <default package> (kalau di dalam project java web, file log4j.properties diletakkan di Web Pages -> WEB-INF -> classess) . Isi dari file log4j.properties itu seperti ini

log4j.rootLogger=INFO,toFile,toConsole

log4j.appender.toConsole=org.apache.log4j.ConsoleAppender
log4j.appender.toConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.toConsole.layout.ConversionPattern=[%d{ISO8601}] [%5p] - %-40c{5}%n%m%n

log4j.appender.toFile=org.apache.log4j.RollingFileAppender
log4j.appender.toFile.File=D:/maniakjava.log
log4j.appender.toFile.MaxFileSize=100KB
log4j.appender.toFile.MaxBackupIndex=2
log4j.appender.toFile.layout=org.apache.log4j.PatternLayout
log4j.appender.toFile.layout.ConversionPattern=[%d{ISO8601}] [%5p] - %-40c{5}%n%m%n
 

Perhatikan baris pertama. INFO itu diperlukan jika ingin menulis log ke file, kemudian saya membuat 2 buah appender, 1 untuk menulis ke file dan 1 lagi untuk menulis ke console. Pattern2 mengenai ConversionPattern dapat diliat langsung di http://logging.apache.org/log4j/1.2/manual.html.

Berikutnya, buat sebuah class Main di package com.maniakjava.main

package com.maniakjava.main;

import org.apache.log4j.Logger;

public class main
{
    private static Logger logger = Logger.getLogger(main.class);

    public static void main(String[] args)
    {
        String nama = "Maniak Java";
        logger.info("Mulai masuk program dengan nama : " + nama);
        logger.error("Ini menggunakan error");
        logger.warn("Ini menggunakan warn");
    }
}
 

Coba jalankan class tersebut, maka output yang dihasilkan adalah

[2011-07-29 10:19:48,937] [ INFO] – com.maniakjava.main.main
Mulai masuk program dengan nama : Maniak Java
[2011-07-29 10:19:48,937] [ERROR] – com.maniakjava.main.main
Ini menggunakan error
[2011-07-29 10:19:48,937] [ WARN] – com.maniakjava.main.main
Ini menggunakan warn

Selain itu pada folder D: juga akan tercipta sebuah file maniakjava.log. Sekarang coba buka isi file maniakjava.log. Isi dari file itu sama dengan yang ada di console.  Lalu jalankan kembali class Main di atas, dan buka lagi file maniakjava.log. Maka hasilnya akan menjadi seperti ini :

[2011-07-29 10:19:48,937] [ INFO] – com.maniakjava.main.main
Mulai masuk program dengan nama : Maniak Java
[2011-07-29 10:19:48,937] [ERROR] – com.maniakjava.main.main
Ini menggunakan error
[2011-07-29 10:19:48,937] [ WARN] – com.maniakjava.main.main
Ini menggunakan warn
[2011-07-29 10:36:56,703] [ INFO] – com.maniakjava.main.main
Mulai masuk program dengan nama : Maniak Java
[2011-07-29 10:36:56,703] [ERROR] – com.maniakjava.main.main
Ini menggunakan error
[2011-07-29 10:36:56,703] [ WARN] – com.maniakjava.main.main
Ini menggunakan warn

Jadi isi file tersebut akan terus bertambah (append), tidak ditimpa.

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