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.
Since: 2.0
Author: Qiang Xue (qiang.xue@gmail.com)
Inheritance: extends Target
Exemple #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();
 }
Exemple #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();
 }
Exemple #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();
 }
 /**
  * (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];
Exemple #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;
 /**
  * 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);
 }
Exemple #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;
Exemple #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]);
 }