1

こんにちはlog4php.propertiesのログファイル名とパスを動的に変更するにはどうすればよいですか?

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

ありがとう

4

2 に答える 2

2

2 つの有用な情報:

(1) user367134 による以前の回答は役に立ちますが、バグがあります。レベルを設定するときは、LoggerLevel::DEBUG で示される定数整数値に設定しないでください。代わりに、LoggerLevel::toLevel() 関数を使用して LoggerLevel オブジェクトを取得する必要があります。つまり、

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

代わりに次のようにする必要があります。

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

(2) 上記の例と似た例を次に示しますが、いくつかの違いがあります。

  • ローリング ログ ファイルを使用します (各ログ ファイルの最大サイズは 100MB で、保持されるのは最大 10 個です)。
  • ログ行にカスタム パターンを使用する
  • setLevel のバグを修正
  • ログレベルを 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");
于 2011-02-22T04:50:58.317 に答える
0

私のコードではありませんが、ここにサンプルコードとサイトへのリンクがあります

require_once('log4php/Logger.php');

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

  $appender = new LoggerAppenderFile("MyAppender");
  $appender->setFile("mylogfile.log", true);
  $appenderlayout = new LoggerLayoutTTCC();
  $appender->setLayout($appenderlayout);
  $appender->activateOptions();

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

  $rootlogger->info("info");
  $rootlogger->error("error");
  $rootlogger->debug("debug");

実際のサイト リンク

クレジットは「AKJOL」に行きます

于 2010-12-29T11:39:21.333 に答える