AWStats несколько столбцов в дополнительном разделе - PullRequest
0 голосов
/ 17 февраля 2012

У меня работает AWStats, а отчеты создаются на основе лог-файлов IIS. У меня есть дополнительный раздел для просмотра всех действий выполненных perlscripts на сайте.

Конфиг выглядит так:

ExtraSectionName1="Actions"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1="URL,\/cgi\-bin\/.+\.pl"
ExtraSectionFirstColumnTitle1="Action"
ExtraSectionFirstColumnValues1="QUERY_STRING,action=([a-zA-Z0-9]+)"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=HPB
ExtraSectionAddAverageRow1=0
ExtraSectionAddSumRow1=1
MaxNbOfExtra1=20
MinHitExtra1=1

Вывод выглядит так:

Action    Pages    Hits
foo       1234     1234
bar       5678     5678

Но есть некоторые действия с одинаковыми именами в разных скриптах Perl.
Мне нужно это:

Script    Action    Pages    Hits
foo.pl    foo       1234     1234
bar.pl    foo       1234     1234
foo.pl    bar       5678     5678
bar.pl    bar       5678     5678

Кто-нибудь знает, как создать такой отчет?

EDIT:

Я провел еще какое-то исследование, и во всех найденных мной сообщениях на форуме говорится, что невозможно иметь два столбца в дополнительном разделе без взлома в awstats.pl

Теперь я пытаюсь поместить его в один столбец, используя URLWITHQUERY, чтобы вывести что-то вроде этого:

Action                  Pages    Hits
foo.pl?action=foo       1234     1234
foo.pl?action=bar       1234     1234
bar.pl?action=foo       5678     5678
...

Новая проблема заключается в том, что запрос имеет больше параметров, чем действий, которые неупорядочены. Я попробовал это

ExtraSectionFirstColumnValues1="URLWITHQUERY,([a-zA-Z0-9]+\.pl\?).*(action=[a-zA-Z0-9]+)"

но AWStats получает значение только из первой пары скобок и игнорирует остальные. Я думаю, что это внутренне работает с $1, предоставленным регулярным выражением perl 'magic'.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

Я нашел решение.

awstats.pl извлекает данные для указанных дополнительных секций в line 19664 - 19750

Это моя модификация:

# Line 19693 - 19701 in awstats.pl (AWStats version 7 Revision 1.971)
elsif ( $rowkeytype eq 'URLWITHQUERY' ) {
    if ( "$urlwithnoquery$tokenquery$standalonequery" =~
        /$rowkeytypeval/ )
    {
        $rowkeyval = "$1$2"; # I simply added a $2 for the second capture group
        $rowkeyok  = 1;
        last;
    }
}

Это получит первую и вторую группы захвата, указанные в регулярном выражении ExtraSectionFirstColumnValuesX.

Пример:

ExtraSectionFirstColumnValues1="URLWITHQUERY,([a-zA-Z0-9]+\.pl\?).*(action=[a-zA-Z0-9]+)"

Нет необходимости говорить, что вам нужно добавить1017 * если вам нужно больше групп.

0 голосов
/ 17 февраля 2012

может быть?

ExtraSectionFirstColumnTitle1="Script"
ExtraSectionFirstColumnValues1="URL,\/cgi\-bin\/(.+\.pl)`enter code here`"
ExtraSectionFirstColumnFormat1="%s"

ExtraSectionFirstColumnTitle2="Action"
ExtraSectionFirstColumnValues2="QUERY_STRING,action=([a-zA-Z0-9]+)"
ExtraSectionFirstColumnFormat2="%s"
...