一千萬個為什麽

搜索

log4php - 在log4php.properties中動態更改日誌文件名

您好如何動態更改log4php.properties中的日誌文件名和路徑

log4php.appender.A8.File = .. /日誌/ logs.log

謝謝

最佳答案

2條有用的信息:

(1)user367134的上一個答案很有幫助,但它有一個錯誤:設置級別時,不應將其設置為LoggerLevel :: DEBUG表示的常量整數值。您應該使用LoggerLevel :: toLevel()函數來獲取LoggerLevel對象。 即,

$rootlogger->setLevel(LoggerLevel::DEBUG);

應該是:

$rootlogger->setLevel(LoggerLevel::toLevel(LoggerLevel::DEBUG));

(2)以下是與上述類似的示例,但有一些區別:

  • 使用滾動日誌文件(每個日誌文件的最大大小為100MB,最多保留10個)
  • 使用自定義模式作為日誌行
  • 修復了setLevel bug
  • 將日誌級別設置為INFO

代碼:

$rootlogger = Logger::getRootLogger();
$rootlogger->setLevel(LoggerLevel::toLevel(LoggerLevel::INFO));

$appender = new LoggerAppenderRollingFile("MyAppender");
$appender->setFile("custom_name.log", true);
$appender->setMaxBackupIndex(10); 
$appender->setMaxFileSize("100MB");
$appenderlayout = new LoggerLayoutPattern();
$pattern = '%d{Y-m-d H:i:s} [%p] %c: %m (at %F line %L)%n';
$appenderlayout->setConversionPattern($pattern);
$appender->setLayout($appenderlayout);
$appender->activateOptions();

$rootlogger->removeAllAppenders();
$rootlogger->addAppender($appender);

$rootlogger->info("info");

轉載註明原文: log4php - 在log4php.properties中動態更改日誌文件名