log4php

How to change log file name dynamically in log4php?


I am new to log4php and I would like to change the log file name and path dynamically.

I do this, but there is nothing in Test.log message.

$crawlupLogger = Logger::getRootLogger();
$crawlupLogger->setLevel(LoggerLevel::toLevel(LoggerLevel::DEBUG));
$appender = new LoggerAppenderFile("MyAppender");
$appender->setFile("Test.log");
$appender->setAppend(false);
$appenderlayout = new LoggerLayoutPattern();
$pattern = '%date{U}%message%newline';
$appenderlayout->setConversionPattern($pattern);
$appender->setLayout($appenderlayout);
$appender->activateOptions();

$crawlupLogger->removeAllAppenders();
$crawlupLogger->addAppender($appender); 
// Line head 
$crawlupLogger->info("Date,Time,Level,Message");

Solution

  • Here the solution :

    $crawlupLogger = Logger::getRootLogger();
    $crawlupLogger->setLevel(LoggerLevel::toLevel(LoggerLevel::DEBUG));
    $appender = new LoggerAppenderFile("CrawlUpLogAppender");
    $appender->setFile("Test.log");
    $appender->setAppend(false);
    $appenderlayout = new LoggerLayoutPattern();
    $pattern = "%date{U}\t%-5p\t%message%newline";
    $appenderlayout->setConversionPattern($pattern);
    $appenderlayout->activateOptions();     
    $appender->setLayout($appenderlayout);       
    $crawlupLogger->removeAllAppenders();
    $crawlupLogger->addAppender($appender);
    

    Rem : Notice the use of " instead of '. If the string is enclosed in double-quotes ("), PHP will interpret more escape sequences for special characters: