The log file is specified via [[logFile]]. If the size of the log file exceeds [[maxFileSize]] (in kilo-bytes), a rotation will be performed, which renames the current log file by suffixing the file name with '.1'. All existing log files are moved backwards by one place, i.e., '.2' to '.3', '.1' to '.2', and so on. The property [[maxLogFiles]] specifies how many history files to keep.
С версии: 2.0
Автор: Qiang Xue (qiang.xue@gmail.com)
Наследование: extends Target
Пример #1
0
 public function recode_log($msg)
 {
     $log = new FileTarget();
     $log->logFile = Yii::$app->getRuntimePath() . '/logs/wx_debug_' . date("Y-m-d") . '.log';
     $log->messages[] = [$msg, 1, 'application', microtime(true)];
     $log->export();
 }
Пример #2
0
 public function recode($msg)
 {
     $time = microtime(true);
     $log = new FileTarget();
     $log->logFile = Yii::$app->getRuntimePath() . '/logs/err.log';
     $log->messages[] = [$msg . " [url:{$_SERVER['REQUEST_URI']}][post:" . http_build_query($_POST) . "]", 1, 'application', $time];
     $log->export();
 }
Пример #3
0
 public function actionError()
 {
     $code = 404;
     $msg = CommonException::OBJECT_NOT_FOUND;
     $error = Yii::$app->errorHandler->exception;
     if ($error) {
         $code = $error->getCode();
         $msg = $error->getMessage();
         $file = $error->getFile();
         $line = $error->getLine();
         $time = microtime(true);
         $log = new FileTarget();
         $log->logFile = Yii::$app->getRuntimePath() . '/logs/err.log';
         $log->messages[] = [$msg . " [file: {$file}][line: {$line}][err code:{$code}.][url:{$_SERVER['REQUEST_URI']}][post:" . http_build_query($_POST) . "]", 1, 'application', $time];
         $log->export();
         $code = -1;
         $msg = "系统错误,请稍后重试";
     }
     return $this->goHome();
 }
Пример #4
0
 /**
  * (non-PHPdoc)
  * @see \yii\log\Target::formatMessage()
  */
 public function formatMessage($message)
 {
     if (!$this->with_microtime) {
         return parent::formatMessage($message);
     }
     list($text, $level, $category, $timestamp) = $message;
     $level = \yii\log\Logger::getLevelName($level);
     if (!is_string($text)) {
         $text = VarDumper::export($text);
     }
     $traces = [];
     if (isset($message[4])) {
         foreach ($message[4] as $trace) {
             $traces[] = "in {$trace['file']}:{$trace['line']}";
         }
     }
     $prefix = $this->getMessagePrefix($message);
     return (new \DateTime())->setTimestamp($timestamp)->format('Y-m-d H:i:s') . ':' . str_pad(round(($timestamp - floor($timestamp)) * 1000000), 6, '0', STR_PAD_RIGHT) . " {$prefix}[{$level}][{$category}] {$text}" . (empty($traces) ? '' : "\n    " . implode("\n    ", $traces));
 }
<?php

$params = array_merge(require __DIR__ . '/../../common/config/params.php', require __DIR__ . '/../../common/config/params-local.php', require __DIR__ . '/params.php', require __DIR__ . '/params-local.php');
return ['id' => 'app-practical-a-frontend', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], 'controllerNamespace' => 'frontend\\controllers', 'components' => ['log' => ['traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [['class' => \yii\log\FileTarget::className(), 'levels' => ['error']]]], 'errorHandler' => ['errorAction' => 'site/error']], 'params' => $params];
Пример #6
0
    $base['components']['user'] = ['class' => 'canis\\web\\User', 'enableAutoLogin' => false, 'identityClass' => 'cascade\\server\\models\\User', 'loginUrl' => ['/user/login']];
}
if (!isset($base['components']['fileStorage'])) {
    $base['components']['fileStorage'] = ['class' => FileStorage::className()];
}
if (!isset($base['components']['view'])) {
    $base['components']['view'] = ['class' => View::className()];
}
if (!isset($base['components']['response'])) {
    $base['components']['response'] = ['class' => Response::className()];
}
if (!isset($base['components']['log'])) {
    $base['components']['log'] = [];
}
if (!isset($base['components']['log']['traceLevel'])) {
    $base['components']['log']['traceLevel'] = YII_DEBUG ? 3 : 0;
}
if (!isset($base['components']['log']['targets'])) {
    $base['components']['log']['targets'] = [];
    $base['components']['log']['targets'][] = ['class' => FileTarget::className(), 'levels' => ['error', 'warning']];
}
if (!isset($base['components']['formatter'])) {
    $base['components']['formatter'] = ['class' => I18nFormatter::className(), 'dateFormat' => 'MM/dd/yyyy'];
}
if (YII_DEBUG) {
    if (!isset($base['components']['errorHandler'])) {
        $base['components']['errorHandler'] = [];
    }
    $base['components']['errorHandler']['discardExistingOutput'] = false;
}
return $base;
Пример #7
0
 /**
  * Initializes the route.
  * This method is invoked after the route is created by the route manager.
  */
 public function init()
 {
     parent::init();
     ini_set('precision', 20);
 }
Пример #8
0
}
if (!isset($base['components']['view'])) {
    $base['components']['view'] = ['class' => View::className()];
}
if (!isset($base['components']['response'])) {
    $base['components']['response'] = ['class' => Response::className()];
}
if (!isset($base['components']['log'])) {
    $base['components']['log'] = [];
}
if (!isset($base['components']['log']['flushInterval'])) {
    $base['components']['log']['flushInterval'] = 1;
}
if (!isset($base['components']['log']['traceLevel'])) {
    $base['components']['log']['traceLevel'] = YII_DEBUG ? 3 : 0;
}
if (!isset($base['components']['log']['targets'])) {
    $base['components']['log']['targets'] = [];
}
$base['components']['log']['targets'][] = ['class' => FileTarget::className(), 'levels' => ['error', 'warning']];
$base['components']['log']['targets'][] = ['class' => FileTarget::className(), 'categories' => ['yii\\swiftmailer\\Logger::add'], 'logFile' => "@runtime/logs/mail.log", 'exportInterval' => 1];
if (!isset($base['components']['formatter'])) {
    $base['components']['formatter'] = ['class' => I18nFormatter::className(), 'dateFormat' => 'MM/dd/yyyy'];
}
if (YII_DEBUG) {
    if (!isset($base['components']['errorHandler'])) {
        $base['components']['errorHandler'] = [];
    }
    $base['components']['errorHandler']['discardExistingOutput'] = false;
}
return $base;
Пример #9
0
 /**
  * Creates a file log target, if it is required.
  * @return FileTarget|null file log target or null, if it is not required.
  */
 protected function createFileLogTarget()
 {
     if (empty($this->logFile)) {
         return null;
     }
     return Yii::createObject(['class' => FileTarget::className(), 'exportInterval' => 1, 'categories' => [get_class($this) . '*'], 'logFile' => $this->logFile]);
 }