Exemplo n.º 1
0
 /**
  * Writes a log line
  *
  * @param int       $loglevel           one of the defined LOGLEVELS
  * @param string    $message
  * @param boolean   $truncate           indicate if the message should be truncated, default true
  *
  * @access public
  * @return
  */
 public static function Write($loglevel, $message, $truncate = true)
 {
     // truncate messages longer than 10 KB
     $messagesize = strlen($message);
     if ($truncate && $messagesize > 10240) {
         $message = substr($message, 0, 10240) . sprintf(" <log message with %d bytes truncated>", $messagesize);
     }
     self::$lastLogs[$loglevel] = $message;
     $data = self::buildLogString($loglevel) . $message . "\n";
     if ($loglevel <= LOGLEVEL) {
         self::writeToLog($loglevel, $data, LOGFILE);
     }
     // should we write this into the user log?
     if ($loglevel <= LOGUSERLEVEL && self::$userLog) {
         // padd level for better reading
         $data = str_replace(self::getLogLevelString($loglevel), self::getLogLevelString($loglevel, true), $data);
         // is the user authenticated?
         if (self::logToUserFile()) {
             // something was logged before the user was authenticated, write this to the log
             if (!empty(self::$unAuthCache)) {
                 self::writeToLog($loglevel, implode('', self::$unAuthCache), LOGFILEDIR . self::logToUserFile() . ".log");
                 self::$unAuthCache = array();
             }
             // only use plain old a-z characters for the generic log file
             self::writeToLog($loglevel, $data, LOGFILEDIR . self::logToUserFile() . ".log");
         } else {
             self::$unAuthCache[] = $data;
         }
     }
     if ($loglevel & LOGLEVEL_FATAL || $loglevel & LOGLEVEL_ERROR) {
         self::writeToLog($loglevel, $data, LOGERRORFILE);
     }
     if ($loglevel & LOGLEVEL_WBXMLSTACK) {
         self::$wbxmlDebug .= $message . "\n";
     }
 }