1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
<?php
/*
* @author Andreas Åkre Solberg <andreas.solberg@uninett.no>
* @package simpleSAMLphp
*/
class sspmod_statistics_LogParser {
private $datestart;
private $datelength;
private $offset;
/**
* Constructor
*
* @param $datestart At which char is the date starting
* @param $datelength How many characters is the date (on the b
* @param $offset At which char is the rest of the entries starting
*/
public function __construct($datestart, $datelength, $offset) {
$this->datestart = $datestart;
$this->datelength = $datelength;
$this->offset = $offset;
}
public function parseEpoch($line) {
$epoch = strtotime(substr($line, 0, $this->datelength));
if ($epoch > time() + 60*60*24*31) {
/*
* More than a month in the future - probably caused by
* the log files missing the year.
* We will therefore subtrackt one year.
*/
$hour = gmdate('H', $epoch);
$minute = gmdate('i', $epoch);
$second = gmdate('s', $epoch);
$month = gmdate('n', $epoch);
$day = gmdate('j', $epoch);
$year = gmdate('Y', $epoch) - 1;
$epoch = gmmktime($hour, $minute, $second, $month, $day, $year);
}
return $epoch;
}
public function parseContent($line) {
$contentstr = substr($line, $this->offset);
$content = explode(' ', $contentstr);
return $content;
}
# Aug 27 12:54:25 ssp 5 STAT [5416262207] saml20-sp-SSO urn:mace:feide.no:services:no.uninett.wiki-feide sam.feide.no NA
#
#Oct 30 11:07:14 www1 simplesamlphp-foodle[12677]: 5 STAT [200b4679af] saml20-sp-SLO spinit urn:mace:feide.no:services:no.feide.foodle sam.feide.no
function parse15($str) {
$di = date_parse($str);
$datestamp = mktime($di['hour'], $di['minute'], $di['second'], $di['month'], $di['day']);
return $datestamp;
}
function parse23($str) {
$timestamp = strtotime($str);
return $timestamp;
}
}
|