2017-10-01 3 views
1

ログファイルに出力し、重複につながるなぜ私はそれでレベルごとにアペンダを含まlog4php設定は、このような特定のファイルの持っている:このlog4phpの設定が

<configuration xmlns="http://logging.apache.org/log4php/"> 
    <appender name="info" class="LoggerAppenderRollingFile"> 
     <layout class="LoggerLayoutPattern"> 
      <param name="conversionPattern" value="%date %logger %-5level %msg%n"/> 
     </layout> 
     <param name="file" value="../app/logs/info.log"/> 
     <param name="append" value="true"/> 
     <param name="maxFileSize" value="100MB"/> 
     <param name="maxBackupIndex" value="1"/> 
     <filter class="LoggerFilterLevelRange"> 
      <param name="levelMin" value="info"/> 
      <param name="levelMax" value="info"/> 
     </filter> 
    </appender> 
    <appender name="warn" class="LoggerAppenderRollingFile"> 
     <layout class="LoggerLayoutPattern"> 
      <param name="conversionPattern" value="%date %logger %-5level %msg%n"/> 
     </layout> 
     <param name="file" value="../app/logs/warn.log"/> 
     <param name="append" value="true"/> 
     <param name="maxFileSize" value="100MB"/> 
     <param name="maxBackupIndex" value="1"/> 
     <filter class="LoggerFilterLevelRange"> 
      <param name="levelMin" value="warn"/> 
      <param name="levelMax" value="warn"/> 
     </filter> 
    </appender> 
    <appender name="error" threshold="error" class="LoggerAppenderRollingFile"> 
     <layout class="LoggerLayoutPattern"> 
      <param name="conversionPattern" value="%date %logger %-5level %msg%n"/> 
     </layout> 
     <param name="file" value="../app/logs/error.log"/> 
     <param name="append" value="true"/> 
     <param name="maxFileSize" value="100MB"/> 
     <param name="maxBackupIndex" value="1"/> 
     <filter class="LoggerFilterLevelRange"> 
      <param name="levelMin" value="error"/> 
      <param name="levelMax" value="fatal"/> 
     </filter> 
    </appender> 
    <appender name="debug" class="LoggerAppenderRollingFile"> 
     <layout class="LoggerLayoutPattern"> 
      <param name="conversionPattern" value="%date %logger %-5level %msg%n"/> 
     </layout> 
     <param name="file" value="../app/logs/debug.log"/> 
     <param name="append" value="true"/> 
     <param name="maxFileSize" value="100MB"/> 
     <param name="maxBackupIndex" value="1"/> 
     <filter class="LoggerFilterLevelRange"> 
      <param name="levelMin" value="debug"/> 
      <param name="levelMax" value="debug"/> 
     </filter> 
    </appender> 
    <root> 
     <level value="debug" /> 
     <appender-ref ref="info"/> 
     <appender-ref ref="warn"/> 
     <appender-ref ref="error"/> 
     <appender-ref ref="debug"/> 
    </root> 
</configuration> 

そして、次のPHPコード:

Logger::configure('config.xml'); 
$logger = Logger::getRootLogger(); 
$logger->warn("test"); 
$logger->error("test"); 
$logger->info("test"); 
$logger->debug("test"); 

そして、私はPHPコードを実行すると、すべてのファイルが作成され、期待どおりレベルごとにファイルごとにログが書き込まれますが、すべてのログ行は次のように複製されます:

cat logs/info.log 
2017-10-01T22:06:44+00:00 root INFO test 
2017-10-01T22:06:44+00:00 root INFO test 

私は間違っていますか?

UPDATEもモノローグロガーを試みたが、同じ問題を持っていた、クラスのロードと間違って何かのように見えます。

{ 
    "require": { 
    "monolog/monolog": "1.23.0" 
    }, 
    "autoload": { 
    "psr-4": { 
     "App\\": "src" 
    } 
    } 
} 

そして、私は私が(SRCではない)アプリケーションクラスを初期化インデックスのphpへのトラフィックをリダイレクトどこ私はhtaccessファイルを持っている:私は、設定が次の行を持って作曲を使用しています。このクラスでは、私だけで次のコードinvloke:

$this->logger = new Logger('default'); 
$this->logger->pushHandler(new StreamHandler(LOGS_DIR . 'info.log', Logger::INFO)); 
$this->logger->pushHandler(new StreamHandler(LOGS_DIR . 'error.log', Logger::ERROR)); 
$this->logger->pushHandler(new StreamHandler(LOGS_DIR . 'debug.log', Logger::DEBUG)); 

$this->logger->error("error"); 
$this->logger->info("info"); 
$this->logger->debug("debug"); 

は、私が作曲を使用する方法と間違って何かすることができますか?

答えて

1

私の場合、間違った.htaccessファイルがあり、必要なページだけでなく、favico.phpのようなページも読み込まれます。後

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-zA-Z0-9\/^\.]+)$ index.php [QSA,L] 

::前

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ index.php [QSA,L] 

ただ、ドットを含まないルートを照合するためのパターンを変更しました。

関連する問題