integrasi log4php dengan CI

Bagi seorang programmer JAVA penggunaan logger tentu bukan barang yang asing. Untuk itu, aq berusaha untuk menemukan padanan log4j di PHP. Setelah kencan sejenak dengan mbah google, akhirnya didapatkan padanan untuk log4j di PHP adalah log4PHP.
Pada praktikum kali ini, aq akan meneruskan tulisanku sebelumnya integrasi ci dan smarty. Peralatan yang diperlukan pada praktikum kali ini adalah log4php. Langkah-langkah yang harus dilakukan adalah sebagai berikut:

1. Extract log4php lalu copy’kan semua file yang ada di direktori src/main/php/ ke dalam direktori third_party/log4php di dalam direktori CI setelah sebelumnya membuat direktori log4php pada direktory third_party tersebut.
2. Buatlah file log-config.xml di dalam CI_HOME/config/xml/ yang isinya adalah sebagai berikut:

<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://logging.apache.org/log4php/">
    <appender name="default" class="LoggerAppenderRollingFile">
        <param name="file" value="application/logs/logger.log" /> 
        <param name="append" value="true" />
        <param name="maxFileSize" value="2MB" />
        <param name="maxBackupIndex" value="3" />
        <layout class="LoggerLayoutPattern">
            <param name="conversionPattern" value="%d{Y-m-d H:i:s} [%p] %c(%F line %L): %m %n" />
        </layout>       
    </appender>
    <root>
        <appender_ref ref="default" />
    </root>
</configuration>

3. Buatlah file log4php.php di dalam CI_HOME/application/libraries/ yang isinya adalah sebagai berikut:

<?php

include_once(APPPATH . 'third_party/log4php/Logger.php');
Logger::configure(APPPATH . 'config/xml/log-config.xml');

class Log4php {
    function Log4php() {
        $logger = Logger::getLogger("Log4php");
    }

}
?>  

4. Ubah file autoload.php yang ada di CI_HOME/application/config/ di bagian libraries sehingga menjadi seperti berikut:

$autoload['libraries'] = array('mysmarty', 'log4php');

5. Ubah file home.php yang ada di CI_HOME/application/controllers/ menjadi seperti berikut:

<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Home extends MY_Controller {

    private $logger;

    public function __construct() {
        parent::__construct();
        $this->logger = Logger::getLogger(get_class($this));
    }

    public function index() {
        $this->logger->info('method index');
        $this->put('description', 'deskripsi');
        $this->put('title', null);
        $this->view('home');
        $this->logger->error('gak ada error');
    }
}

?>

6. jalankan perintah berikut http://localhost/contoh/index.php/home di browser maka jika kita lihat isi dari file logger.log akan terlihat seperti berikut:

2012-02-25 06:11:47 [INFO] Home(/opt/lampp/htdocs/contoh/application/controllers/home.php line 16): method index 
2012-02-25 06:11:47 [ERROR] Home(/opt/lampp/htdocs/contoh/application/controllers/home.php line 20): gak ada error 

Bila di dalam url http://localhost/contoh/index.php/home segmen index.php ingin dihilangkan maka dapat dilihat disini.

Kata Kunci: logger php, memasang log php, log php, logger

Sumber:
http://codeigniter.com/
http://logging.apache.org/
http://phpfunk.com/




Leave a Reply

[+] kaskus emoticons nartzco