У меня вопрос о журналах в Yii2. Я хочу
1.) файл журнал доступа (как базовые/расширенных приложений)
2.) Parse их с помощью с помощью регулярных выражений (отдельных каждую часть журнала, я отчасти знаю, как это сделать)
3.) Покажите их с помощью виджета (в виджетах я хочу указать, что я хочу 2 показать)
Прямо сейчас, я борюсь, какой метод использовать, когда я хочу обрабатывать эти журналы. Я знаю, что они находятся в: app\frontend|backend|console\runtime\logs\app.log
, но так как я все еще новичок Yii2, я действительно не знаю, как выполнять такие действия. Каждый ответ будет оценен! СпасибоYii2 - Файлы журнала (app.log) и как их получить?
ответ
Вы можете иметь журналы, где бы вы ни захотели, с yii2.
Вы можете определить свои собственные журналы в файле конфигурации в зависимости от используемой вами настройки приложения.
http://www.yiiframework.com/doc-2.0/yii-log-target.html
Проверьте файл конфигурации под веб-раздела, и вы увидите что-то вроде этого:
// Logging
'log' => [
'targets' => [
// writes to php-fpm output stream
[
'class' => 'codemix\streamlog\Target',
'url' => 'php://stdout',
'levels' => ['info', 'trace'],
'logVars' => [],
'enabled' => YII_DEBUG,
],
Вы можете добавлять новые ragets так:
[
'class' => 'yii\log\FileTarget',
'levels' => ['info', 'trace', 'error', 'warning'],
'categories' => ['mycategory'],
'logVars' => [],
'logFile' => '@runtime/logs/myfolder/myfile.log',
],
Для добавления строк к этим бревнам вы будете использовать что-то вроде этого:
\Yii::info("hi there", mycategory);
О том, как получить этот путь с в вашем коде, это так просто, как создать псевдоним в файле конфигурации:
http://www.yiiframework.com/doc-2.0/guide-concept-aliases.html
Yii::setAlias('@runtime', dirname(__DIR__) . '/../../runtime/logs/myfolder');
Остальное это в основном PHP функции, такие как чтение файла
http://www.w3schools.com/php/php_file_open.asp
затем поиск о моделях, передавая данные из контроллера в представлении и т.д.
Можете ли вы определить, что вы имеете в виду под рукой? Как и open-ecommerce.org, вы указали, что у вас есть разные цели для ваших файлов журналов. По умолчанию он записывает в файл, однако есть еще много целей, и их также можно комбинировать. Например, вы можете настроить целевой файл журнала для регулярных журналов, но когда случаются исключения, вы можете отправить информацию по электронной почте (и в файл), чтобы увидеть их быстрее (или медленнее :)).
Некоторые опции:
1. Файл, так же, как вы сказали
2. DB, в зависимости от конфигурации вашей целевой БД может быть быстрее, чем ваша цель файла. Помните, что у всех журналов есть стоимость ресурсов.
3. Syslog, неплохо, если вам нужно интегрироваться с каким-либо административным решением для ведения бизнеса.
4. Отправляйте электронную почту, отправляйте электронные письма, когда что-то случится, по электронной почте это хорошо, а это плохие части , с которыми я еще не работал.
Если вам нужно проанализировать журналы, я бы, вероятно, пошел с опцией DB.
Спасибо!Ваш ответ был очень полезен! – Erko
не могли бы вы проверить его как действительный ответ :) –
Я сделал! Я могу показать вам, ребята, что я придумал;) – Erko