# apache2Piwik TypeError first argument must be string or compiled pattern



## lakul (4. Januar 2012)

Hallo,

ich habe bei mir unter Ubuntu Piwik 1.6 fehlerfrei laufen und versuche ein Apache Logfile mit Apache2Piwik (Version 1.0, Juni 2011) zu importieren. Ich habe genau die Anleitung befolgt und verwende Python 2.6 und auch httpagentparser in Version 0.8.2. Dennoch erhalte ich beim Ausführen der apache2piwik.py folgende Fehlermeldung:


```
Traceback (most recent call last):
  File "apache2piwik.py", line 86, 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 241, in _compile
    raise TypeError, "first argument must be string or compiled pattern"
TypeError: first argument must be string or compiled pattern
```

Diesen Fehler erhalte ich auch, wenn ich es mit Python 2.7 und httpagentparser 1.0 probieren. Ich habe gemäß Apache2Piwik Anleitung nur die settings.py editiert. Welche folgendes Aussehen bei mir hat:


```
LOG_FORMAT = "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
APACHE_LOG_FILES = ['access.log']
CHRONOLOGICAL_ORDER = True
CONTINUE = False
IGNORED_LOGS = ['/admin/']
IGNORED_USER_AGENTS = ['bot','crawl','Bot','spider','Spider']
IGNORED_EXTENSIONS = ['.jpg','.gif','.jpeg','.css','.js','.png','.ico']
DOWNLOADED_EXTENSIONS = ['.zip','.pdf','.doc','.xls','.ppt','.jad','.jar','.cod','.apk']
URL_REGEXPR = '(?P<url>[^;\?]*).*?'
ID_SITE = 2
VISIT_LENGTH = 1800
LIFE = False
FREQUENCY_OF_READING = 1000
```

Die MySQL Einstellungen erspare ich uns mal, die sind aber definitiv korrekt, denke auch nicht, dass es daran liegt. Mir ist nicht klar, wo ich anfangen soll zu suchen, denn mein Python ist eher schlecht. Hoffe ihr könnt mir einen Tipp geben.

Ich habe spaßenshalber mal die Zeile


```
LOG_FORMAT = "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
```

durch


```
LOG_FORMAT = ""
```

ersetzt. Das Skript apache2piwik.py wird jetzt ohne Fehlermeldung aufgeführt es wird aber natürlich nichts in die Piwik DB kopiert, da das Log Format fehlt. Ich habe das Log Format mehrfach kontrolliert, genau so sind die Logs in meinem Apache konfiguriert. Zumal die Beispieldatei der settings.py genau das gleiche Log Format als Beispiel enthält. Könnte es an meiner Logdatei liegen, ist das irgendwas falsch, ich sehe keinen Fehler, hier aber mal eine Beispielzeile:


```
192.168.1.1 - - [03/Jan/2011:13:02:09 +0100] "GET / HTTP/1.1" 500 657 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727
; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C)"
192.168.1.2 - - [03/Jan/2011:13:05:42 +0100] "GET /pdf/00260547.PDF HTTP/1.1" 500 657 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bo
t.html)"
192.168.1.1 - - [03/Jan/2011:13:05:56 +0100] "GET / HTTP/1.1" 200 6971 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.5072
7; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C)"
192.168.1.1 - - [03/Jan/2011:13:05:57 +0100] "GET /ploneNS4.css HTTP/1.1" 200 794 "http://www.domain.net/" "Mozilla/4.0 (compatible; MSIE
 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C)"
192.168.1.1 - - [03/Jan/2011:13:05:57 +0100] "GET /plonePrint.css HTTP/1.1" 200 1011 "http://www.domain.net/" "Mozilla/4.0 (compatible; M
SIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C
)"
```

Sorry für den langen Post, aber ich denke je mehr Infos zu meiner Situation, desto besser für eine Analyse.

Danke und viele Grüße.

lakul


----------



## Dr Dau (5. Januar 2012)

Hallo!



lakul hat gesagt.:


> Könnte es an meiner Logdatei liegen, ist das irgendwas falsch, ich sehe keinen Fehler, [..]


Liegt das Script denn im gleichen Verzeichnis wie die Logdatei?
Du hast nämlich keinen Pfad zur Logdatei mit angegeben.

Gruss Dr Dau


----------



## deepthroat (5. Januar 2012)

Hi.

apache2piwik kennt das Format %b nicht.

Siehe https://github.com/cleure/Apache2Piwik für eine angepasste Version.

Siehe auch http://www.tutorials.de/cgi-perl-python-ruby-power-shell/382612-apache2piwik-log_format.html

Gruß


----------

