2017-02-05 4 views
0

У меня вопрос о журналах в Yii2. Я хочу

1.) файл журнал доступа (как базовые/расширенных приложений)
2.) Parse их с помощью с помощью регулярных выражений (отдельных каждую часть журнала, я отчасти знаю, как это сделать)
3.) Покажите их с помощью виджета (в виджетах я хочу указать, что я хочу 2 показать)
Прямо сейчас, я борюсь, какой метод использовать, когда я хочу обрабатывать эти журналы. Я знаю, что они находятся в: app\frontend|backend|console\runtime\logs\app.log, но так как я все еще новичок Yii2, я действительно не знаю, как выполнять такие действия. Каждый ответ будет оценен! СпасибоYii2 - Файлы журнала (app.log) и как их получить?

ответ

1

Вы можете иметь журналы, где бы вы ни захотели, с 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

затем поиск о моделях, передавая данные из контроллера в представлении и т.д.

+0

Спасибо!Ваш ответ был очень полезен! – Erko

+0

не могли бы вы проверить его как действительный ответ :) –

+0

Я сделал! Я могу показать вам, ребята, что я придумал;) – Erko

0

Можете ли вы определить, что вы имеете в виду под рукой? Как и open-ecommerce.org, вы указали, что у вас есть разные цели для ваших файлов журналов. По умолчанию он записывает в файл, однако есть еще много целей, и их также можно комбинировать. Например, вы можете настроить целевой файл журнала для регулярных журналов, но когда случаются исключения, вы можете отправить информацию по электронной почте (и в файл), чтобы увидеть их быстрее (или медленнее :)).

Некоторые опции:
1. Файл, так же, как вы сказали
2. DB, в зависимости от конфигурации вашей целевой БД может быть быстрее, чем ваша цель файла. Помните, что у всех журналов есть стоимость ресурсов.
3. Syslog, неплохо, если вам нужно интегрироваться с каким-либо административным решением для ведения бизнеса.
4. Отправляйте электронную почту, отправляйте электронные письма, когда что-то случится, по электронной почте это хорошо, а это плохие части , с которыми я еще не работал.

Если вам нужно проанализировать журналы, я бы, вероятно, пошел с опцией DB.

+0

Спасибо, Михай! – Erko

+0

Примите один ответ, пожалуйста, либо этот, либо один из open-ecommerce.org –

+0

Я сделал. Спасибо, Михай, покажи свое решение. – Erko