Thanks it works.

On Fri, Jun 10, 2011 at 5:51 PM, Ivan Habunek <[email protected]>wrote:

> Yes you can, but you have to do it manually in your wrapper class. %F
> and %L will always return the values from where the logging function
> was called. In your case the wrapper.
>
> If you remove %F and %L from the pattern, you can append the location
> info you need manually. Something like this:
>
> --begin-----------------------------------------------------------
>
> require 'org.apache.log4php/src/main/php/Logger.php';
>
> class LogWrapper
> {
>        private $logger;
>
>        public function __construct()
>        {
>                $this->logger = Logger::getLogger("LogWrapper");
>        }
>
>        public function log($message)
>        {
>                $trace = debug_backtrace();
>                $file = $trace[0]['file'];
>                $line = $trace[0]['line'];
>
>                $this->logger->info($message . " (at $file line $line)");
>        }
> }
>
> $wrap = new LogWrapper();
> $wrap->log("Hello");
>
> --end-----------------------------------------------------------
>
> Try it out.
>
> Regards,
> Ivan
>
>
> On 10 June 2011 13:46, Mohit Srivastava <[email protected]>
> wrote:
> > Hi Christian,
> >
> > This is my config file:
> >
> > <log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/
> ">
> >     <appender name="default" class="LoggerAppenderDailyFile">
> >         <param name="file" value="logs/%s.log" />
> >         <param name="datePattern" value="Ymd" />
> >         <layout class="LoggerLayoutPattern">
> >             <param name="ConversionPattern" value="%d{Y-m-d H:i:s} [%p]
> %c:
> > %m (%F at %L)" />
> >         </layout>
> >     </appender>
> >
> >         <root>
> >             <level value="DEBUG" />
> >             <appender_ref ref="default" />
> >         </root>
> >
> >     </log4php:configuration>
> >
> > The bold characters are responsible for filename in log file. As it
> called
> > from loggerimplementation.php.
> > So, it always show its name, but the real file used loggerimplementation
> as
> > wrapper. So, i want to know , is there any way i can define thing like %F
> so
> > that i can get real file name.
> >
> > --
> > Mohit
> >
> > On Fri, Jun 10, 2011 at 5:07 PM, Mohit Srivastava
> > <[email protected]> wrote:
> >>
> >> <?php
> >>
> >> /*
> >> Looger.php is included.
> >> */
> >> require_once('log4php/Logger.php');
> >> /*
> >> This class is use to generate a log file.
> >> */
> >> class Loggerimplementation extends Exception{
> >> /*
> >>  Member for logger Object.
> >> */
> >>     private $loggerObj;
> >>
> >> /*
> >>  Member for caller class ie class called loggerImplementation class.
> >> */
> >>     private $callerClass;
> >> /*
> >> Constructor intialize the member caller class.
> >> Also configure it with config.xml.
> >> */
> >>     public function __construct($ClassName) {
> >>        $this->callerClass=$ClassName;
> >>        if($this->callerClass==NULL)
> >>             throw new NullValueException('Caller Class Value is NULL');
> >>
> >>        $loggerConfig = 'log4php/xml/config.xml';
> >>         Logger::configure($loggerConfig);
> >>
> >>         $this->loggerObj = Logger::getLogger($this->callerClass);
> >>
> >>         if($this->loggerObj==NULL)
> >>             throw new NullValueException('Logger Object Created is
> NULL');
> >>     }
> >> /*
> >> Constructor intialize the member caller class.
> >> Also configure it with anotherconfig.xml. This constructor is used for
> >> warn, fatal,error cases.
> >> */
> >>     public function __constructlevel($ClassName,$isErrSet) {
> >>        if($isErrSet)
> >>         {
> >>             $this->callerClass=ClassName;
> >>             if($this->callerClass==NULL)
> >>                 throw new NullValueException('Caller Class Value is
> >> NULL');
> >>
> >>             $loggerConfig = 'log4php/xml/config.xml';
> >>             Logger::configure($loggerConfig);
> >>
> >>             $this->loggerObj = Logger::getLogger($this->callerClass);
> >>             if($this->loggerObj==NULL)
> >>                 throw new NullValueException('Logger Object Created is
> >> NULL');
> >>         }
> >>         else
> >>         {
> >>             throw new UnexpectedValueException("isErrSet value is
> wrong");
> >>             }
> >>     }
> >> /*
> >> function used to generate log message. In this , level will be check as
> it
> >> passed as parameter according to which a log file is generated.
> >> */
> >>     public function logMessage($message,$level)
> >>     {
> >>
> >>         if($message=="null")
> >>             throw new NullValueException("message cant be null");
> >>
> >>         if($level!="INFO" && $level!="DEBUG" && $level!="WARN" &&
> >> $level!="ERROR" && $level!="FATAL")
> >>             throw new UnexpectedValueException("Invalid value of Log
> >> Level");
> >>         if($level=="DEBUG")
> >>             $this->loggerObj->debug($message);
> >>         else
> >>             if($level=="INFO")
> >>             $this->loggerObj->info($message);
> >>         else
> >>             if($level=="WARN")
> >>             $this->loggerObj->warn($message);
> >>         else
> >>             if($level=="ERROR")
> >>             $this->loggerObj->error($message);
> >>         else
> >>             if($level=="FATAL")
> >>             $this->loggerObj->fatal($message);
> >>     }
> >> }
> >>
> >>
> >> ?>
> >>
> >> this is my wrapper.
> >>
> >>
> >> On Fri, Jun 10, 2011 at 4:35 PM, Christian Grobmeier <
> [email protected]>
> >> wrote:
> >>>
> >>> Hi,
> >>>
> >>> can you show us the Logging code?
> >>>
> >>> Esspecially the Logger::getLogger code is of interest.
> >>>
> >>> Thanks
> >>> Christian
> >>>
> >>> On Fri, Jun 10, 2011 at 12:53 PM, Mohit Srivastava
> >>> <[email protected]> wrote:
> >>> > Hi all,
> >>> >
> >>> > I write a wrapper over log4php api named as loggerimplementation.php
> >>> >
> >>> > Now i faced a problem in log files. When i called a function for
> >>> > logging
> >>> > defined in loggerimplementation.
> >>> >
> >>> > Log file generated as:
> >>> >
> >>> > 2011-06-10 10:49:17 [INFO] Log4phpTest: Hello (at
> >>> > C:\xampp\htdocs\logger\Loggerimplementation.php line 74)
> >>> > 2011-06-10 10:50:08 [INFO] Log4phpTest: Hello (at
> >>> > C:\xampp\htdocs\logger\Loggerimplementation.php line 74)
> >>> > 2011-06-10 11:04:01 [INFO] Log4phpTest: Hello (at
> >>> > C:\xampp\htdocs\logger\Loggerimplementation.php line 78)
> >>> >
> >>> > Now , as you can see %F will always show wrapper file name coz it
> >>> > always
> >>> > called from there. But I want real file name which one used this
> >>> > wrapper.
> >>> >
> >>> > So please suggest me the way for this.
> >>> >
> >>> > Or
> >>> > tell me from where %F details i can get?
> >>> >
> >>> > Waiting for reply.
> >>> >
> >>> > --
> >>> > Mohit
> >>> >
> >>>
> >>>
> >>>
> >>> --
> >>> http://www.grobmeier.de
> >>
> >
> >
>

Reply via email to