2017-04-18 8 views
0

Quel est le bon format pour utiliser log4php dans une classe avec des fonctions?Comment utiliser log4php dans les fonctions

<?php 
include_once 'log4php-2.3.0/src/main/php/Logger.php'; 

class template 
{ 
    public static temp1; 
    public static temp2; 
    Logger::configure($path . '\commons\log4php-2.3.0\config.xml'); 
    $log = Logger::getLogger('myLogger'); 

    public static function example1() 
    { 

    } 

    public static function example2() 
    { 

    } 

}

Comment puis-je appeler la ligne $log->fatal($error); par exemple dans les deux fonctions? Devrais-je redéclarer le $ log dans chaque ou comment?

Répondre

0

Un exemple simple de Reference

// Include and configure log4php 
include('log4php/Logger.php'); 
Logger::configure('config.xml'); 

/** 
* This is a classic usage pattern: one logger object per class. 
*/ 
class Foo 
{ 
    /** Holds the Logger. */ 
    private $log; 

    /** Logger is instantiated in the constructor. */ 
    public function __construct() 
    { 
     // The __CLASS__ constant holds the class name, in our case "Foo". 
     // Therefore this creates a logger named "Foo" (which we configured in the config file) 
     $this->log = Logger::getLogger(__CLASS__); 
    } 

    /** Logger can be used from any member method. */ 
    public function go() 
    { 
     $this->log->info("We have liftoff."); 
    } 
} 

$foo = new Foo(); 
$foo->go(); 
+0

J'utilise cette façon alredy, problème est que je reçois cette erreur, semble ne pas avoir passé est la construction, Erreur fatale: L'utilisation de cette $ lorsqu'ils ne sont pas dans un contexte d'objet. J'utilise cette classe sans faire le nouveau Foo, j'appelle juste les fonctions –