Apache2Piwik Log_Format


bauchinj

Erfahrenes Mitglied
Hallo

Ich verwende das Tool Apache2Piwik um meine Domains mitzuloggen... hat alles wunderbar funktioniert, solange bis ich das Loggingformat umgestellt habe von 'combined' auf 'vhost_combined'...
In settings.py steht, dass dies der Wert ist wie in /etc/apache2/apache.conf, trage ich diesen ein, so erhalte ich einen Fehler:

Code:
Traceback (most recent call last):
  File "/usr/local/Apache2Piwik/apache2piwik.py", line 87, in <module>
    regexpr = re.compile(p.create_regexpr(s.LOG_FORMAT))
  File "/usr/lib/python2.6/re.py", line 190, in compile
    return _compile(pattern, flags)
  File "/usr/lib/python2.6/re.py", line 245, in _compile
    raise error, v # invalid expression
sre_constants.error: redefinition of group name 'url' as group 10; was group 1
Hab schon alles mögliche versucht, aber verstehe im Moment nicht wirklich, was es damit auf sich hat!? Es muss auf alle Fälle was mit dem LOG_FORMAT zu tun haben, da alles funktioniert, wenn ich combined verwende


danke für eure Hilfe!
 

deepthroat

Erfahrenes Mitglied
Hi.

Offenbar enthält der reg. Ausdruck eine benannte Gruppe namens "url'. Anscheinend wird versucht diese Gruppe doppelt zu definieren - was nicht erlaubt ist und dementsprechend zu einer Ausnahme führt.

Welche Version hast du denn?

Wie sieht der reg. Ausdruck aus?

Gruß
 

bauchinj

Erfahrenes Mitglied
Ich verwende version 1.0 vom Juni 2011

der reg. Ausdruck:
"%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""
 

deepthroat

Erfahrenes Mitglied
Ich verwende version 1.0 vom Juni 2011

der reg. Ausdruck:
"%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""
Das ist das LOG Format. Der reg. Ausdruck der von create_regexpr() generiert wird, sieht so aus:
Python:
'^(?P<url>.*?):\\d{1,5} (?P<ip>(\\d{1,4}.){3}\\d{1,4}) (-|[\\w\\.]*) (?P<idvisitor>-|(\\w|%|=|,| )+) \\[(?P<datetime>\\d{2}/[a-zA-Z]{3}/\\d{4}:\\d{2}:\\d{2}:\\d{2} (\\+|-)\\d{4})\\] "(GET|POST) (?P<url>.*?) ?(HTTP/0.9|HTTP/1.0|HTTP/1.1|)" (200|201|202|203|204|205|206) (-|\\d+) "(?P<referer>.*?)" "(?P<user_agent>.*?)"\n$'
Wie man sieht wird für %v und für %U der gleiche reg. Ausdruck generiert.

Ändere in src/apache_log_format_parser.py Zeile 20 von
Python:
v = '(?P<url>.*?)'
in
Python:
v = '(?P<servername>.*?)'
Evtl. solltest du dieses Problem noch hier https://github.com/clearcode/Apache2Piwik/issues melden.

Gruß