View | Details | Raw Unified | Return to bug 53748
Collapse All | Expand All

(-)src/components/org/apache/jmeter/util/AccessLogUtils.java (+152 lines)
Line 0 Link Here
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *   http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 */
18
19
package org.apache.jmeter.util;
20
21
import java.text.DateFormat;
22
import java.text.ParseException;
23
import java.text.SimpleDateFormat;
24
import java.util.Locale;
25
26
import org.apache.commons.lang3.StringUtils;
27
import org.apache.jmeter.timers.AccessLogTimer;
28
import org.apache.oro.text.regex.Pattern;
29
import org.apache.oro.text.regex.Perl5Compiler;
30
import org.apache.oro.text.regex.Perl5Matcher;
31
32
33
public class AccessLogUtils {
34
35
    private static final int FIELD_NOTFOUND = -1;
36
	private static final int ALL_GROUP = 0;
37
	private static final int DATE_GROUP = 2;
38
	public static final long DATE_EMPTY = FIELD_NOTFOUND;
39
	
40
	public static final String LOGFORMAT_COMBINED="%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"";
41
	public static final String LOGFORMAT_COMMON="%h %l %u %t \"%r\" %>s %b";
42
	public static final String LOGFORMAT_UNKNOWN = null;
43
	public static final String LOGFORMAT_VHOST="%v";
44
	
45
	public static final String IP_PATTERN="[\\d.]+";
46
	public static final String CLIENT_PATTERN="\\S+";
47
	public static final String USERID_PATTERN="\\S+";
48
	public static final String DATE_PATTERN="[\\w:/]+\\s[+\\-]\\d{4}";
49
	public static final String REQUEST_PATTERN=".+?";
50
	public static final String STATUS_PATTERN="\\d{3}";
51
	public static final String SIZE_PATTERN="[^\"]+";
52
	public static final String REFERRER_PATTERN="[^\"]+";
53
	public static final String AGENT_PATTERN="[^\"]+";
54
	public static final String VHOST_PATTERN="[^\"]+";
55
56
	public static final String COMMON_PATTERN="^("+IP_PATTERN+") ("+CLIENT_PATTERN+") ("+USERID_PATTERN+") \\[("+DATE_PATTERN+")\\] \"("+REQUEST_PATTERN+")\" ("+STATUS_PATTERN+") ("+SIZE_PATTERN+")";
57
	public static final String COMBINED_PATTERN="^("+IP_PATTERN+") ("+CLIENT_PATTERN+") ("+USERID_PATTERN+") \\[("+DATE_PATTERN+")\\] \"("+REQUEST_PATTERN+")\" ("+STATUS_PATTERN+") ("+SIZE_PATTERN+") \"("+REFERRER_PATTERN+")\" \"("+AGENT_PATTERN+")\"";
58
	
59
	public static String getIpAddress(String entry) {
60
			String pattern="\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
61
	        return getMatchedGroupForPatternInEntry(ALL_GROUP, pattern, entry);
62
	}
63
64
	public static long parseDateAsLong(String time) throws ParseException {
65
		return parseDateAsLong(time, AccessLogTimer.DEFAULT_DATE_FORMAT);
66
	}
67
68
	public static long parseDateAsLong(String time, String format) throws ParseException {
69
		if(StringUtils.isEmpty(time)) {
70
			return DATE_EMPTY;
71
		}
72
		DateFormat formatter  = new SimpleDateFormat(format, new Locale("en"));
73
		return formatter.parse(time).getTime();
74
	}
75
76
	public static long parseDateAsLongFromEntry(String entry) throws ParseException {
77
		return parseDateAsLongFromEntry(entry, AccessLogTimer.DEFAULT_DATE_PATTERN, AccessLogTimer.DEFAULT_DATE_FORMAT);
78
	}
79
	
80
	public static long parseDateAsLongFromEntry(String entry, String datePattern, String format) throws ParseException {
81
		String pattern="(.*)\\[("+datePattern +")\\](.*)";
82
		String date = getMatchedGroupForPatternInEntry(DATE_GROUP, pattern, entry);
83
	    return parseDateAsLong(date, format);
84
	}
85
86
	public static String getDateFromEntry(String entry) throws ParseException {
87
		return getDateFromEntry(entry, AccessLogTimer.DEFAULT_DATE_PATTERN);
88
	}
89
	
90
	public static String getDateFromEntry(String entry, String datePattern) throws ParseException {
91
		String pattern="(.*)\\[("+datePattern +")\\](.*)";
92
		return getMatchedGroupForPatternInEntry(DATE_GROUP, pattern, entry);
93
	}
94
95
	private static String getMatchedGroupForPatternInEntry(int group, String patternStr, String entry) {
96
		Pattern pattern = getPatternCache(patternStr);
97
		Perl5Matcher matcher = JMeterUtils.getMatcher();
98
		matcher.contains(entry, pattern);
99
		return matcher.getMatch().group(group);
100
	}
101
	
102
	private static Pattern getPatternCache(String pattern) {
103
		return JMeterUtils.getPatternCache().getPattern(pattern, Perl5Compiler.READ_ONLY_MASK | Perl5Compiler.SINGLELINE_MASK);
104
	}
105
	
106
	public static String getFieldFromEntry(String field, String entry, String logFormat) {
107
		String[] logFormatParts = logFormat.split(" ");
108
		int groupNumber=findGroupNumberOfField(field, logFormatParts);
109
		String pattern=constructPatternOfLogFormat(logFormat);
110
		return getMatchedGroupForPatternInEntry(groupNumber,pattern, entry);
111
	}
112
113
	private static int findGroupNumberOfField(String field, String[] logFormatParts) {
114
		for(int i=0;i<logFormatParts.length;i++) {
115
			if(field.equals(logFormatParts[i])) {
116
				return i+1;
117
			}
118
		}
119
		return FIELD_NOTFOUND;
120
	}
121
	
122
	public static String constructPatternOfLogFormat(String logFormat) {
123
		
124
		if(logFormat.contains(LOGFORMAT_COMBINED)) {
125
			return constructPatternContainingStandardFormat(logFormat,LOGFORMAT_COMBINED, COMBINED_PATTERN);
126
		}
127
128
		if(logFormat.contains(LOGFORMAT_COMMON)) {
129
			return constructPatternContainingStandardFormat(logFormat,LOGFORMAT_COMMON,COMMON_PATTERN);
130
		}
131
		return LOGFORMAT_UNKNOWN;
132
	}
133
134
	private static String constructPatternContainingStandardFormat(String logFormat, String standardFormat, String standardPattern) {
135
		StringBuffer pattern=new StringBuffer();
136
		pattern.append(standardPattern);
137
		String extras = StringUtils.substringAfter(logFormat,standardFormat);
138
		if(StringUtils.isNotEmpty(extras)) {
139
			constructPatternOfExtraFormat(pattern, extras);
140
		}
141
		return pattern.toString();
142
	}
143
144
	private static void constructPatternOfExtraFormat(StringBuffer pattern, String extras) {
145
		String[] extraParts = extras.split(" ");
146
		for(String extra : extraParts) {
147
			if(LOGFORMAT_VHOST.equals(extra)) {
148
				pattern.append(" ("+VHOST_PATTERN+")");
149
			}
150
		}
151
	}
152
}
(-)src/components/org/apache/jmeter/timers/AccessLogTimerResources.properties (+21 lines)
Line 0 Link Here
1
#   Licensed to the Apache Software Foundation (ASF) under one or more
2
#   contributor license agreements.  See the NOTICE file distributed with
3
#   this work for additional information regarding copyright ownership.
4
#   The ASF licenses this file to You under the Apache License, Version 2.0
5
#   (the "License"); you may not use this file except in compliance with
6
#   the License.  You may obtain a copy of the License at
7
# 
8
#       http://www.apache.org/licenses/LICENSE-2.0
9
# 
10
#   Unless required by applicable law or agreed to in writing, software
11
#   distributed under the License is distributed on an "AS IS" BASIS,
12
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
#   See the License for the specific language governing permissions and
14
#   limitations under the License.
15
16
displayName=Access Log Timer
17
dateFormat.displayName=Date Format
18
datePattern.displayName=Date Regular Expression
19
file.displayName=Log File
20
offset.displayName=Offset
21
numEntries.displayName=Number of Samples
(-)src/components/org/apache/jmeter/timers/AccessLogTimerResources_fr.properties (+21 lines)
Line 0 Link Here
1
#   Licensed to the Apache Software Foundation (ASF) under one or more
2
#   contributor license agreements.  See the NOTICE file distributed with
3
#   this work for additional information regarding copyright ownership.
4
#   The ASF licenses this file to You under the Apache License, Version 2.0
5
#   (the "License"); you may not use this file except in compliance with
6
#   the License.  You may obtain a copy of the License at
7
# 
8
#       http://www.apache.org/licenses/LICENSE-2.0
9
# 
10
#   Unless required by applicable law or agreed to in writing, software
11
#   distributed under the License is distributed on an "AS IS" BASIS,
12
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
#   See the License for the specific language governing permissions and
14
#   limitations under the License.
15
16
displayName=Access Log Timer
17
dateFormat.displayName=Format de la date
18
datePattern.displayName=Expression r\u00E9guli\u00E8re pour la date
19
file.displayName=Fichier de logs
20
offset.displayName=Offset
21
numEntries.displayName=Nombre d'\u00E9chantillons
(-)src/components/org/apache/jmeter/timers/AccessLogTimerResources_es.properties (+21 lines)
Line 0 Link Here
1
#   Licensed to the Apache Software Foundation (ASF) under one or more
2
#   contributor license agreements.  See the NOTICE file distributed with
3
#   this work for additional information regarding copyright ownership.
4
#   The ASF licenses this file to You under the Apache License, Version 2.0
5
#   (the "License"); you may not use this file except in compliance with
6
#   the License.  You may obtain a copy of the License at
7
# 
8
#       http://www.apache.org/licenses/LICENSE-2.0
9
# 
10
#   Unless required by applicable law or agreed to in writing, software
11
#   distributed under the License is distributed on an "AS IS" BASIS,
12
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
#   See the License for the specific language governing permissions and
14
#   limitations under the License.
15
16
displayName=Temporizador de Log de Acceso
17
dateFormat.displayName=Formato de la fecha
18
datePattern.displayName=Expresion Regular de la fecha
19
file.displayName=Archivo de Log
20
offset.displayName=Desplazamiento
21
numEntries.displayName=N\u02d9mero de Muestras
(-)src/components/org/apache/jmeter/timers/AccessLogTimer.java (+189 lines)
Line 0 Link Here
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *   http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 */
18
19
package org.apache.jmeter.timers;
20
21
22
import java.io.File;
23
import java.io.IOException;
24
import java.text.ParseException;
25
import java.util.ArrayList;
26
import java.util.Iterator;
27
import java.util.List;
28
29
import org.apache.commons.io.FileUtils;
30
import org.apache.commons.io.LineIterator;
31
import org.apache.jmeter.testbeans.TestBean;
32
import org.apache.jmeter.testelement.AbstractTestElement;
33
import org.apache.jmeter.util.AccessLogUtils;
34
import org.apache.jorphan.logging.LoggingManager;
35
import org.apache.log.Logger;
36
37
/**
38
 * This class implements a constant timer with its own panel and fields for
39
 * value update and user interaction.
40
 * @since 2.10
41
 */
42
public class AccessLogTimer extends AbstractTestElement implements Timer,
43
        TestBean {
44
45
    /**
46
     * 
47
     */
48
    private static final long serialVersionUID = 5608153257356854733L;
49
    private static final int TIME_INVALID = -1;
50
51
    private static final Logger log = LoggingManager.getLoggerForClass();
52
53
    public final static String FILE = "ApacheLogTimer.file"; //$NON-NLS-1$
54
    public final static String OFFSET = "ApacheLogTimer.offset"; //$NON-NLS-1$
55
    public final static String NUMENTRIES = "ApacheLogTimer.numentries"; //$NON-NLS-1$
56
    public final static String FORMAT = "ApacheLogTimer.dateFormat"; //$NON-NLS-1$
57
    public final static String PATTERN = "ApacheLogTimer.datePattern"; //$NON-NLS-1$
58
    public static final String DEFAULT_DATE_FORMAT = "dd/MMM/yyyy:HH:mm:ss Z";
59
    public static final String DEFAULT_DATE_PATTERN = "[\\w:/]+\\s[+\\-]\\d{4}";
60
61
    private long previousTime = TIME_INVALID;
62
63
    Iterator<Long> sampleIterator;
64
65
    private Long currentSampleTime;
66
67
    /**
68
     * No-arg constructor.
69
     */
70
    public AccessLogTimer() {
71
    }
72
73
    /**
74
     * Set the delay for this timer.
75
     * 
76
     */
77
    public void setFile(String file) {
78
        setProperty(FILE, file);
79
    }
80
81
    public String getFile() {
82
        return getPropertyAsString(FILE);
83
    }
84
85
    public void setOffset(String offset) {
86
        setProperty(OFFSET, offset);
87
    }
88
89
    public String getOffset() {
90
        return getPropertyAsString(OFFSET);
91
    }
92
93
    public void setDateFormat(String format) {
94
        setProperty(FORMAT, format);
95
    }
96
97
    public String getDateFormat() {
98
        return getPropertyAsString(FORMAT);
99
    }
100
101
    public void setDatePattern(String pattern) {
102
        setProperty(PATTERN, pattern);
103
    }
104
105
    public String getDatePattern() {
106
        return getPropertyAsString(PATTERN);
107
    }
108
109
    public void setNumEntries(String numEntries) {
110
        setProperty(NUMENTRIES, numEntries);
111
    }
112
113
    public String getNumEntries() {
114
        return getPropertyAsString(NUMENTRIES);
115
    }
116
117
    /**
118
     * Retrieve the delay to use during test execution. TODO question: what
119
     * should be returned when delay can't be calculated?
120
     * 
121
     * @return the delay.
122
     */
123
    @Override
124
    public long delay() {
125
126
        if (null == sampleIterator) {
127
            try {
128
                readSamplesTimeFromLogIterator();
129
            } catch (NumberFormatException e) {
130
                log.error("", e);
131
            } catch (IOException e) {
132
                log.error("", e);
133
            } catch (ParseException e) {
134
                log.error("", e);
135
            }
136
        }
137
138
        long delay = calculateDelay();
139
        if(log.isDebugEnabled()) {
140
            log.debug("thread=" + Thread.currentThread().getName() + " delay="
141
                    + delay);
142
        }
143
        return delay;
144
    }
145
146
    private long calculateDelay() {
147
148
        long sampleTime = 0;
149
        currentSampleTime = sampleIterator.next();
150
        sampleTime = currentSampleTime.longValue();
151
152
        if (TIME_INVALID == previousTime) {
153
            previousTime = sampleTime;
154
        }
155
156
        long delay = Math.abs(sampleTime - previousTime);
157
        previousTime = sampleTime;
158
        return delay;
159
    }
160
161
    private long parseTimeFromSample(String entry) throws ParseException {
162
        return AccessLogUtils.parseDateAsLongFromEntry(entry, getDatePattern(),
163
                getDateFormat());
164
    }
165
166
    private void readSamplesTimeFromLogIterator() throws NumberFormatException,
167
            IOException, ParseException {
168
        LineIterator it = initLineIteratorAtOffset(Integer
169
                .parseInt(getOffset()));
170
171
        List<Long> samplesTimes = new ArrayList<Long>();
172
        int numEntries = Integer.parseInt(getNumEntries());
173
        for (int i = 0; i < numEntries; i++) {
174
            samplesTimes.add(Long.valueOf(parseTimeFromSample(it.next())));
175
        }
176
        it.close();
177
        this.sampleIterator = samplesTimes.iterator();
178
    }
179
180
    private LineIterator initLineIteratorAtOffset(int offset)
181
            throws IOException {
182
        LineIterator it = FileUtils.lineIterator(new File(getFile()));
183
        int entryNum = 0;
184
        while (entryNum++ < offset) {
185
            it.next();
186
        }
187
        return it;
188
    }
189
}
(-)src/components/org/apache/jmeter/timers/AccessLogTimerBeanInfo.java (+65 lines)
Line 0 Link Here
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 * http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
 * License for the specific language governing permissions and limitations
15
 * under the License.
16
 *
17
 */
18
19
package org.apache.jmeter.timers;
20
21
import java.beans.PropertyDescriptor;
22
23
import org.apache.jmeter.testbeans.BeanInfoSupport;
24
import org.apache.jmeter.testbeans.gui.FileEditor;
25
import org.apache.jorphan.logging.LoggingManager;
26
import org.apache.log.Logger;
27
28
/**
29
 * BeanInfo for {@link AccessLogTimer}
30
 * @since 2.10
31
 */
32
public class AccessLogTimerBeanInfo extends BeanInfoSupport {
33
    private static final Logger log = LoggingManager.getLoggerForClass();
34
35
    public AccessLogTimerBeanInfo() {
36
        super(AccessLogTimer.class);
37
38
        log.debug("Entered access log timer bean info");
39
40
        PropertyDescriptor p;
41
42
        p = property("dateFormat"); // $NON-NLS-1$
43
        p.setValue(NOT_UNDEFINED, Boolean.TRUE);
44
        p.setValue(DEFAULT, "");
45
46
        p = property("datePattern"); // $NON-NLS-1$
47
        p.setValue(NOT_UNDEFINED, Boolean.TRUE);
48
        p.setValue(DEFAULT, ""); // $NON-NLS-1$
49
50
        p = property("file"); // $NON-NLS-1$
51
        p.setValue(NOT_UNDEFINED, Boolean.TRUE);
52
        p.setValue(DEFAULT, "");
53
        p.setPropertyEditorClass(FileEditor.class);
54
55
        p = property("offset"); // $NON-NLS-1$
56
        p.setValue(NOT_UNDEFINED, Boolean.TRUE);
57
        p.setValue(DEFAULT, "0");
58
59
        p = property("numEntries"); // $NON-NLS-1$
60
        p.setValue(NOT_UNDEFINED, Boolean.TRUE);
61
        p.setValue(DEFAULT, "1");
62
63
        log.debug("Got to end of access log timer  bean info init");
64
    }
65
}
(-)src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSamplerBeanInfo.java (-3 / +7 lines)
Lines 49-55 Link Here
49
                    new String[] { "parserClassName", "filterClassName" }); // $NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$
49
                    new String[] { "parserClassName", "filterClassName" }); // $NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$
50
50
51
            createPropertyGroup("accesslogfile",  // $NON-NLS-1$
51
            createPropertyGroup("accesslogfile",  // $NON-NLS-1$
52
                    new String[] { "logFile" }); // $NON-NLS-1$
52
                    new String[] { "logFile", "offset" }); // $NON-NLS-1$
53
53
54
            PropertyDescriptor p;
54
            PropertyDescriptor p;
55
55
Lines 74-85 Link Here
74
74
75
            p = property("logFile"); // $NON-NLS-1$
75
            p = property("logFile"); // $NON-NLS-1$
76
            p.setValue(NOT_UNDEFINED, Boolean.TRUE);
76
            p.setValue(NOT_UNDEFINED, Boolean.TRUE);
77
            p.setValue(DEFAULT, "");
77
            p.setValue(DEFAULT, ""); // $NON-NLS-1$
78
            p.setPropertyEditorClass(FileEditor.class);
78
            p.setPropertyEditorClass(FileEditor.class);
79
79
80
            p = property("offset"); // $NON-NLS-1$
81
            p.setValue(NOT_UNDEFINED, Boolean.TRUE);
82
            p.setValue(DEFAULT, "0"); // $NON-NLS-1$
83
            
80
            p = property("domain"); // $NON-NLS-1$
84
            p = property("domain"); // $NON-NLS-1$
81
            p.setValue(NOT_UNDEFINED, Boolean.TRUE);
85
            p.setValue(NOT_UNDEFINED, Boolean.TRUE);
82
            p.setValue(DEFAULT, "");
86
            p.setValue(DEFAULT, ""); // $NON-NLS-1$
83
87
84
            p = property("portString"); // $NON-NLS-1$
88
            p = property("portString"); // $NON-NLS-1$
85
            p.setValue(NOT_UNDEFINED, Boolean.TRUE);
89
            p.setValue(NOT_UNDEFINED, Boolean.TRUE);
(-)src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSamplerResources_fr.properties (+2 lines)
Lines 25-30 Link Here
25
imageParsing.shortDescription=Si activ\u00E9, JMeter va t\u00E9l\u00E9charger les images et les ressources contenues dans chaque page web.
25
imageParsing.shortDescription=Si activ\u00E9, JMeter va t\u00E9l\u00E9charger les images et les ressources contenues dans chaque page web.
26
logFile.displayName=Fichier journal 
26
logFile.displayName=Fichier journal 
27
logFile.shortDescription=Emplacement du fichier journal \u00E0 analyser pour les requ\u00EAtes.
27
logFile.shortDescription=Emplacement du fichier journal \u00E0 analyser pour les requ\u00EAtes.
28
offset.displayName=Ligne de d\u00E9but de lecture
29
offset.shortDescription=Ligne du fichier access log \u00E0 partir de laquelle l'\u00E9chantillonage d\u00E9marre 
28
parserClassName.displayName=Analyseur 
30
parserClassName.displayName=Analyseur 
29
parserClassName.shortDescription=Choisir une impl\u00E9mentation d'analyseur pour analyser votre fichier journal.
31
parserClassName.shortDescription=Choisir une impl\u00E9mentation d'analyseur pour analyser votre fichier journal.
30
plugins.displayName=Extension de Classes
32
plugins.displayName=Extension de Classes
(-)src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java (+17 lines)
Lines 77-82 Link Here
77
    // NOTUSED private Class PARSERCLASS = null;
77
    // NOTUSED private Class PARSERCLASS = null;
78
    private String logFile, parserClassName, filterClassName;
78
    private String logFile, parserClassName, filterClassName;
79
79
80
    private static final String OFFSET = "AccessLogSampler.offset";
81
    
80
    private transient Filter filter;
82
    private transient Filter filter;
81
83
82
    private int count = 0;
84
    private int count = 0;
Lines 196-201 Link Here
196
                        PARSER = (LogParser) Class.forName(getParserClassName()).newInstance();
198
                        PARSER = (LogParser) Class.forName(getParserClassName()).newInstance();
197
                        PARSER.setSourceFile(this.getLogFile());
199
                        PARSER.setSourceFile(this.getLogFile());
198
                        PARSER.setFilter(filter);
200
                        PARSER.setFilter(filter);
201
                        PARSER.setOffset(getOffset());
199
                    } else {
202
                    } else {
200
                        log.error("No log file specified");
203
                        log.error("No log file specified");
201
                    }
204
                    }
Lines 273-278 Link Here
273
    }
276
    }
274
277
275
    /**
278
    /**
279
     * @return Returns the offset at which to start reading
280
     */
281
    public int getOffset() {
282
        return super.getPropertyAsInt(OFFSET);
283
    }
284
285
    /**
286
     * @param offset the offset at which to start reading
287
     */
288
    public void setOffset(int offset) {
289
        super.setProperty(OFFSET, offset);
290
    }
291
292
    /**
276
     *
293
     *
277
     */
294
     */
278
    public AccessLogSampler() {
295
    public AccessLogSampler() {
(-)src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSamplerResources_es.properties (+2 lines)
Lines 30-32 Link Here
30
plugins.displayName=Classes desplegables
30
plugins.displayName=Classes desplegables
31
portString.displayName=Puerto
31
portString.displayName=Puerto
32
portString.shortDescription=N\u00FAmero de puerto contra el que probar
32
portString.shortDescription=N\u00FAmero de puerto contra el que probar
33
offset.displayName=Desplazamiento
34
offset.shortDescription=Numero de entrada en el log desde donde empezar a muestrear. 
(-)src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSamplerResources.properties (-1 / +3 lines)
Lines 28-31 Link Here
28
portString.displayName=Port
28
portString.displayName=Port
29
portString.shortDescription=Port Number to test against
29
portString.shortDescription=Port Number to test against
30
imageParsing.displayName=Parse Images
30
imageParsing.displayName=Parse Images
31
imageParsing.shortDescription=If turned on, JMeter will download images and resources contained in each web page
31
imageParsing.shortDescription=If turned on, JMeter will download images and resources contained in each web page
32
offset.displayName=Offset
33
offset.shortDescription=Entry number in access log from where to start sampling 
(-)src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/SessionFilter.java (-10 / +3 lines)
Lines 33-44 Link Here
33
import org.apache.jmeter.testelement.TestCloneable;
33
import org.apache.jmeter.testelement.TestCloneable;
34
import org.apache.jmeter.testelement.TestElement;
34
import org.apache.jmeter.testelement.TestElement;
35
import org.apache.jmeter.testelement.ThreadListener;
35
import org.apache.jmeter.testelement.ThreadListener;
36
import org.apache.jmeter.util.JMeterUtils;
36
import org.apache.jmeter.util.AccessLogUtils;
37
import org.apache.jorphan.logging.LoggingManager;
37
import org.apache.jorphan.logging.LoggingManager;
38
import org.apache.log.Logger;
38
import org.apache.log.Logger;
39
import org.apache.oro.text.regex.Pattern;
40
import org.apache.oro.text.regex.Perl5Compiler;
41
import org.apache.oro.text.regex.Perl5Matcher;
42
39
43
/**
40
/**
44
 * Provides Session Filtering for the AccessLog Sampler.
41
 * Provides Session Filtering for the AccessLog Sampler.
Lines 67-79 Link Here
67
    }
64
    }
68
65
69
    protected String getIpAddress(String logLine) {
66
    protected String getIpAddress(String logLine) {
70
        Pattern incIp = JMeterUtils.getPatternCache().getPattern("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}",
67
        return AccessLogUtils.getIpAddress(logLine);
71
                Perl5Compiler.READ_ONLY_MASK | Perl5Compiler.SINGLELINE_MASK);
72
        Perl5Matcher matcher = JMeterUtils.getMatcher();
73
        matcher.contains(logLine, incIp);
74
        return matcher.getMatch().group(0);
75
    }
68
    }
76
69
    
77
    /**
70
    /**
78
     * {@inheritDoc}
71
     * {@inheritDoc}
79
     */
72
     */
(-)src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/LogParser.java (+6 lines)
Lines 73-76 Link Here
73
     * @param source
73
     * @param source
74
     */
74
     */
75
    void setSourceFile(String source);
75
    void setSourceFile(String source);
76
    
77
    /**
78
     * Set the offset
79
     * @param offset
80
     */
81
    void setOffset(int offset);
76
}
82
}
(-)src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/template-threadGroup.jmx (+39 lines)
Line 0 Link Here
1
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="@IP@" enabled="true">
2
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
3
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Controlador Bucle" enabled="true">
4
          <boolProp name="LoopController.continue_forever">false</boolProp>
5
          <stringProp name="LoopController.loops">@NUM_ENTRIES@</stringProp>
6
        </elementProp>
7
        <stringProp name="ThreadGroup.num_threads">1</stringProp>
8
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
9
        <longProp name="ThreadGroup.start_time">0</longProp>
10
        <longProp name="ThreadGroup.end_time">0</longProp>
11
        <boolProp name="ThreadGroup.scheduler">true</boolProp>
12
        <stringProp name="ThreadGroup.duration">@DURATION@</stringProp>
13
        <stringProp name="ThreadGroup.delay">@DELAY@</stringProp>
14
      </ThreadGroup>
15
      <hashTree>
16
        <AccessLogSampler guiclass="TestBeanGUI" testclass="AccessLogSampler" testname="Access Log Sampler" enabled="true">
17
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
18
            <collectionProp name="Arguments.arguments"/>
19
          </elementProp>
20
          <stringProp name="domain">${SERVER-NAME}</stringProp>
21
          <boolProp name="imageParsing">true</boolProp>
22
          <stringProp name="logFile">${LOG-FILE}</stringProp>
23
          <stringProp name="offset">@OFFSET@</stringProp>
24
          <stringProp name="parserClassName">org.apache.jmeter.protocol.http.util.accesslog.SharedTCLogParser</stringProp>
25
          <stringProp name="portString"></stringProp>
26
          <stringProp name="filterClassName">org.apache.jmeter.protocol.http.util.accesslog.LogFilter</stringProp>
27
        </AccessLogSampler>
28
        <hashTree/>
29
        
30
	    <org.apache.jmeter.timers.AccessLogTimer guiclass="TestBeanGUI" testclass="org.apache.jmeter.timers.AccessLogTimer" testname="Access Log Timer" enabled="true">
31
          <stringProp name="dateFormat">${DATE-FORMAT}</stringProp>
32
          <stringProp name="datePattern">${DATE-PATTERN}</stringProp>
33
          <stringProp name="file">${LOG-FILE}</stringProp>
34
          <stringProp name="offset">@OFFSET@</stringProp>
35
          <stringProp name="numEntries">@NUM_ENTRIES@</stringProp>
36
    	</org.apache.jmeter.timers.AccessLogTimer>
37
    	<hashTree/>
38
        
39
      </hashTree>
(-)src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/TCLogParser.java (-5 / +32 lines)
Lines 21-28 Link Here
21
import java.io.BufferedReader;
21
import java.io.BufferedReader;
22
import java.io.File;
22
import java.io.File;
23
import java.io.FileInputStream;
23
import java.io.FileInputStream;
24
import java.io.FileReader;
24
import java.io.FileNotFoundException;
25
import java.io.IOException;
25
import java.io.IOException;
26
import java.io.InputStream;
26
import java.io.InputStreamReader;
27
import java.io.InputStreamReader;
27
import java.io.UnsupportedEncodingException;
28
import java.io.UnsupportedEncodingException;
28
import java.net.URLDecoder;
29
import java.net.URLDecoder;
Lines 31-36 Link Here
31
import java.util.StringTokenizer;
32
import java.util.StringTokenizer;
32
import java.util.zip.GZIPInputStream;
33
import java.util.zip.GZIPInputStream;
33
34
35
import org.apache.commons.io.IOUtils;
36
import org.apache.commons.io.LineIterator;
34
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
37
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
35
import org.apache.jmeter.testelement.TestElement;
38
import org.apache.jmeter.testelement.TestElement;
36
import org.apache.jorphan.logging.LoggingManager;
39
import org.apache.jorphan.logging.LoggingManager;
Lines 110-115 Link Here
110
113
111
    protected BufferedReader READER = null;
114
    protected BufferedReader READER = null;
112
115
116
    protected int OFFSET;
117
113
    /**
118
    /**
114
     * Handles to supporting classes
119
     * Handles to supporting classes
115
     */
120
     */
Lines 187-192 Link Here
187
    }
192
    }
188
193
189
    /**
194
    /**
195
     * Set the offset
196
     * @param offset
197
     */
198
    @Override
199
    public void setOffset(int offset) {
200
    	OFFSET = offset;
201
    }
202
203
    /**
190
     * parse the entire file.
204
     * parse the entire file.
191
     *
205
     *
192
     * @return boolean success/failure
206
     * @return boolean success/failure
Lines 197-203 Link Here
197
        }
211
        }
198
        try {
212
        try {
199
            if (this.READER == null) {
213
            if (this.READER == null) {
200
                this.READER = getReader(this.SOURCE);
214
                this.READER = getReader(this.SOURCE, OFFSET);
201
            }
215
            }
202
            return parse(this.READER, el, parseCount);
216
            return parse(this.READER, el, parseCount);
203
        } catch (Exception exception) {
217
        } catch (Exception exception) {
Lines 206-219 Link Here
206
        return -1;// indicate that an error occured
220
        return -1;// indicate that an error occured
207
    }
221
    }
208
222
209
    private static BufferedReader getReader(File file) throws IOException {
223
    protected static BufferedReader getReader(File file, int offset) throws IOException {
210
        if (! isGZIP(file)) {
224
        if (! isGZIP(file)) {
211
            return new BufferedReader(new FileReader(file));
225
            return getReaderAtLine(new FileInputStream(file), offset);
212
        }
226
        }
213
        GZIPInputStream in = new GZIPInputStream(new FileInputStream(file));
227
        GZIPInputStream in = new GZIPInputStream(new FileInputStream(file));
214
        return new BufferedReader(new InputStreamReader(in));
228
        return getReaderAtLine(in, offset);
215
    }
229
    }
216
230
231
	static BufferedReader getReaderAtLine(InputStream in, int line) throws FileNotFoundException {
232
		BufferedReader reader = new BufferedReader(new InputStreamReader(in));
233
		LineIterator it = IOUtils.lineIterator(reader);
234
		int current=0;
235
		String entry=null;
236
		while(current <line) {
237
			entry=it.next();
238
			current++;
239
		}
240
		
241
		return reader;
242
	}
243
217
    private static boolean isGZIP(File file) throws IOException {
244
    private static boolean isGZIP(File file) throws IOException {
218
        FileInputStream in = new FileInputStream(file);
245
        FileInputStream in = new FileInputStream(file);
219
        try {
246
        try {
(-)src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/TestPlanGenerator.java (+452 lines)
Line 0 Link Here
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *   http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 */
18
19
package org.apache.jmeter.protocol.http.util.accesslog;
20
21
import java.io.File;
22
import java.io.FileNotFoundException;
23
import java.io.IOException;
24
import java.io.InputStream;
25
import java.net.URISyntaxException;
26
import java.text.ParseException;
27
import java.util.ArrayList;
28
import java.util.HashMap;
29
import java.util.HashSet;
30
import java.util.List;
31
import java.util.Map;
32
import java.util.Set;
33
import java.util.regex.Matcher;
34
import java.util.regex.Pattern;
35
36
import org.apache.commons.io.FileUtils;
37
import org.apache.commons.io.FilenameUtils;
38
import org.apache.commons.io.IOUtils;
39
import org.apache.commons.io.LineIterator;
40
import org.apache.commons.lang3.StringUtils;
41
import org.apache.jmeter.timers.AccessLogTimer;
42
import org.apache.jmeter.util.AccessLogUtils;
43
44
public class TestPlanGenerator {
45
46
    Map<String, List<String>> entriesByIp;
47
    Map<String, Long> offsetsByIp;
48
    Set<String> ips;
49
    String groupedLogName;
50
    String planFileName;
51
    String resultFileName;
52
53
    public TestPlanGenerator() {
54
        super();
55
    }
56
57
    public static class DateRange {
58
        public String startTime;
59
        public String endTime;
60
61
        public DateRange(String startTime, String endTime) {
62
            this.startTime = startTime;
63
            this.endTime = endTime;
64
        }
65
    }
66
67
    public static class PlanRequest implements Cloneable {
68
        public String server;
69
        public String port;
70
        public String protocol;
71
        public DateRange range;
72
        public String logFile;
73
        public String outputDir;
74
        public String virtualhost;
75
        public boolean printProgress;
76
        public int progressInterval;
77
        public String logFormat;
78
    }
79
80
    public String generateTestPlan(PlanRequest request) throws IOException,
81
            ParseException, FileNotFoundException {
82
        generateGroupedAccessLog(request);
83
        ips = findIPSetInAccessLog(new File(groupedLogName));
84
        return generateTestPlanForIPs(request);
85
    }
86
87
    protected void generateGroupedAccessLog(PlanRequest request)
88
            throws IOException, ParseException {
89
90
        long start = parseTime(request.range.startTime);
91
        long end = parseTime(request.range.endTime);
92
93
        entriesByIp = filterEntries(request, start, end);
94
95
        File groupedLog = createGroupedLog(request.logFile, request.outputDir);
96
        writeGroupedAccessLog(groupedLog);
97
98
        offsetsByIp = calculateOffsets();
99
100
    }
101
102
    private long parseTime(String time) throws ParseException {
103
        return AccessLogUtils.parseDateAsLong(time,
104
                AccessLogTimer.DEFAULT_DATE_FORMAT);
105
    }
106
107
    protected Set<String> findIPSetInAccessLog(File accessLog)
108
            throws IOException {
109
        Set<String> ips = new HashSet<String>();
110
        LineIterator it = getLineIteratorForFilename(accessLog);
111
112
        while (it.hasNext()) {
113
            String ip = AccessLogUtils.getIpAddress(it.next());
114
            ips.add(ip);
115
        }
116
        it.close();
117
        return ips;
118
    }
119
120
    private String generateTestPlanForIPs(PlanRequest userPlan)
121
            throws ParseException {
122
123
        // the thread groups are created, one for each different ip
124
        StringBuffer threadGroups = new StringBuffer();
125
        for (String ip : ips) {
126
            String threadGroup = generateThreadGroupForTheIP(ip, userPlan.range);
127
            threadGroups.append(threadGroup);
128
        }
129
130
        // if requested start or end time is empty, the first or end date of the
131
        // access log is really used as plan time
132
        PlanRequest realPlan = userPlan;
133
134
        if (StringUtils.isEmpty(realPlan.range.startTime)) {
135
            realPlan.range.startTime = AccessLogUtils
136
                    .getDateFromEntry(firstEntry());
137
        }
138
139
        if (StringUtils.isEmpty(realPlan.range.endTime)) {
140
            realPlan.range.endTime = AccessLogUtils
141
                    .getDateFromEntry(lastEntry());
142
        }
143
144
        // the test plan is built and written in the jmx file
145
        planFileName = realPlan.outputDir
146
                + constructPlanFileName(realPlan.range);
147
        String plan = buildPlan(realPlan, threadGroups);
148
        writePlan(planFileName, plan);
149
150
        return planFileName;
151
    }
152
153
    String constructPlanFileName(DateRange dateRange) {
154
155
        String startDateName = contructDateNameFromDate(dateRange.startTime);
156
        String endDateName = contructDateNameFromDate(dateRange.endTime);
157
        return startDateName + "_" + endDateName + "-plan.jmx";
158
    }
159
160
    String contructDateNameFromDate(String date) {
161
        return removeOffsetFromDate(date).replaceAll("[:/]", "");
162
    }
163
164
    String removeOffsetFromDate(String date) {
165
        if (StringUtils.isEmpty(date)) {
166
            return null;
167
        }
168
169
        String pattern = "([\\w:/]+)(\\s[+\\-]\\d{4})";
170
        Pattern p = Pattern.compile(pattern);
171
        Matcher matcher = p.matcher(date);
172
        matcher.matches();
173
        return matcher.group(1);
174
    }
175
176
    private String buildPlan(PlanRequest request, StringBuffer threadGroups) {
177
        String plan = null;
178
        try {
179
            String planName = constructPlanName(request.range);
180
            resultFileName = contructResultFileName(request.outputDir);
181
            plan = readTemplate("template-testPlan.jmx");
182
            plan = plan.replace("@PLAN_NAME@", planName);
183
            plan = plan.replace("@SERVER_NAME@", request.server);
184
            plan = plan.replace("@SERVER_PORT@", request.port);
185
            plan = plan.replace("@SERVER_PROTOCOL@", request.protocol);
186
            plan = plan.replace("@THREAD_GROUPS@", threadGroups.toString());
187
            plan = plan.replace("@LOG_FILE@", groupedLogName);
188
            plan = plan.replace("@DATE_FORMAT@",
189
                    AccessLogTimer.DEFAULT_DATE_FORMAT);
190
            plan = plan.replace("@DATE_PATTERN@",
191
                    AccessLogTimer.DEFAULT_DATE_PATTERN);
192
            plan = plan.replace("@RESULT_FILE@", resultFileName);
193
194
        } catch (IOException e) {
195
            // TODO Auto-generated catch block
196
            e.printStackTrace();
197
        } catch (URISyntaxException e) {
198
            // TODO Auto-generated catch block
199
            e.printStackTrace();
200
        }
201
        return plan;
202
    }
203
204
    private String contructResultFileName(String outputDir) {
205
        return outputDir + FilenameUtils.getBaseName(planFileName) + ".csv";
206
    }
207
208
    private String constructPlanName(DateRange range) {
209
        return "Accesses from " + removeOffsetFromDate(range.startTime)
210
                + " to " + removeOffsetFromDate(range.endTime);
211
    }
212
213
    private void writePlan(String fileName, String plan) {
214
215
        try {
216
            FileUtils.write(new File(fileName), plan);
217
        } catch (IOException e) {
218
            // TODO Auto-generated catch block
219
            e.printStackTrace();
220
        }
221
    }
222
223
    private void writeGroupedAccessLog(File groupedLog) throws IOException {
224
        for (String ip : entriesByIp.keySet()) {
225
            FileUtils.writeLines(groupedLog, entriesByIp.get(ip), true);
226
        }
227
    }
228
229
    private Map<String, Long> calculateOffsets() throws IOException {
230
        Map<String, Long> offsetByIp = new HashMap<String, Long>();
231
        long offset = 0;
232
        for (String ip : entriesByIp.keySet()) {
233
            offsetByIp.put(ip, offset);
234
            offset += entriesByIp.get(ip).size();
235
        }
236
        return offsetByIp;
237
    }
238
239
    private File createGroupedLog(String accessLog, String outputDir)
240
            throws IOException {
241
        groupedLogName = outputDir + FilenameUtils.getBaseName(accessLog)
242
                + ".jmeter.log";
243
        File groupedLog = new File(groupedLogName);
244
        groupedLog.createNewFile();
245
        return groupedLog;
246
    }
247
248
    private Map<String, List<String>> filterEntries(PlanRequest request,
249
            long start, long end) throws IOException, ParseException {
250
        Map<String, List<String>> entriesByIp = new HashMap<String, List<String>>();
251
252
        LineIterator it = getLineIteratorForFilename(new File(request.logFile));
253
254
        int entryNumber = 1;
255
256
        while (it.hasNext()) {
257
258
            if (request.printProgress) {
259
                if (0 == entryNumber % request.progressInterval) {
260
                    System.out.println(entryNumber);
261
                }
262
                entryNumber++;
263
            }
264
265
            String entry = it.next();
266
            // the entry date is queried.
267
            long entryDate = AccessLogUtils.parseDateAsLongFromEntry(entry,
268
                    AccessLogTimer.DEFAULT_DATE_PATTERN,
269
                    AccessLogTimer.DEFAULT_DATE_FORMAT);
270
271
            // if entry date is outside range, the entry is discarded.
272
            if (!isEntryDateInsideRequestedRange(entryDate, start, end)) {
273
                continue;
274
            }
275
276
            if (StringUtils.isNotEmpty(request.virtualhost)) {
277
                if (!isEntryTargetedToRequestedVirtualHost(entry,
278
                        request.logFormat, request.virtualhost)) {
279
                    continue;
280
                }
281
            }
282
283
            // otherwise the entry ip is included in the grouped log.
284
            String ip = AccessLogUtils.getIpAddress(entry);
285
            if (!entriesByIp.containsKey(ip)) {
286
                entriesByIp.put(ip, new ArrayList<String>());
287
            }
288
            entriesByIp.get(ip).add(entry);
289
        }
290
291
        it.close();
292
293
        return entriesByIp;
294
    }
295
296
    private boolean isEntryTargetedToRequestedVirtualHost(String entry,
297
            String logFormat, String vhost) {
298
        String addressedTo = AccessLogUtils.getFieldFromEntry(
299
                AccessLogUtils.LOGFORMAT_VHOST, entry, logFormat);
300
        return vhost.equals(addressedTo);
301
    }
302
303
    public boolean isEntryDateInsideRequestedRange(long entryDate, long start,
304
            long end) {
305
306
        if (unlimitedRange(start, end)) {
307
            return true;
308
        }
309
310
        if (startTimeIsUnlimited(start, end)) {
311
            return entryDate <= end;
312
        }
313
314
        if (endTimeIsUnlimited(start, end)) {
315
            return entryDate >= start;
316
        }
317
318
        return entryDate >= start && entryDate <= end;
319
    }
320
321
    private boolean startTimeIsUnlimited(long start, long end) {
322
        return AccessLogUtils.DATE_EMPTY == start
323
                && AccessLogUtils.DATE_EMPTY != end;
324
    }
325
326
    private boolean endTimeIsUnlimited(long start, long end) {
327
        return AccessLogUtils.DATE_EMPTY != start
328
                && AccessLogUtils.DATE_EMPTY == end;
329
    }
330
331
    private boolean unlimitedRange(long start, long end) {
332
        return AccessLogUtils.DATE_EMPTY == start
333
                && AccessLogUtils.DATE_EMPTY == end;
334
    }
335
336
    private LineIterator getLineIteratorForFilename(File accessLog)
337
            throws IOException {
338
        return IOUtils.lineIterator(TCLogParser.getReader(accessLog, 0));
339
    }
340
341
    protected String generateThreadGroupForTheIP(String ip, DateRange range) {
342
343
        String threadGroup = "";
344
        try {
345
346
            // the thread group delay is calculated accordingly the first access
347
            List<String> entries = entriesByIp.get(ip);
348
            long firstAccess = AccessLogUtils.parseDateAsLongFromEntry(entries
349
                    .get(0)); // first access
350
            long start = AccessLogUtils.parseDateAsLong(range.startTime);
351
            long groupDelay = Math.abs(firstAccess - start) / 1000;
352
353
            // the thread group duration is calculated
354
            // the duration is not really important, as what matters is the loop
355
            // counter
356
            // given by the number of entries. We make twice the range so is big
357
            // enough to
358
            // loop all the samples.
359
360
            long end = parseTime(range.endTime);
361
            long duration = (end - start) * 2 / 1000;
362
363
            // the thread group is written
364
            threadGroup = readTemplate("template-threadGroup.jmx");
365
            threadGroup = threadGroup.replaceAll("@IP@", ip);
366
            threadGroup = threadGroup.replace("@DELAY@",
367
                    Long.toString(groupDelay));
368
            threadGroup = threadGroup.replace("@DURATION@",
369
                    Long.toString(duration));
370
            threadGroup = threadGroup.replace("@NUM_ENTRIES@",
371
                    Long.toString(entries.size()));
372
            threadGroup = threadGroup.replace("@OFFSET@",
373
                    Long.toString(offsetsByIp.get(ip)));
374
375
        } catch (IOException e) {
376
            // TODO Auto-generated catch block
377
            e.printStackTrace();
378
        } catch (ParseException e) {
379
            // TODO Auto-generated catch block
380
            e.printStackTrace();
381
        } catch (URISyntaxException e) {
382
            // TODO Auto-generated catch block
383
            e.printStackTrace();
384
        }
385
386
        return threadGroup;
387
388
    }
389
390
    private String readTemplate(String templateName) throws IOException,
391
            URISyntaxException {
392
        InputStream is = this.getClass().getResourceAsStream(templateName);
393
        return IOUtils.toString(is);
394
    }
395
396
    public int ipCount() {
397
        return entriesByIp.keySet().size();
398
    }
399
400
    public int entryCount() {
401
        int count = 0;
402
        for (String ip : entriesByIp.keySet()) {
403
            count += entriesByIp.get(ip).size();
404
        }
405
        return count;
406
    }
407
408
    // TODO refactor firstDate and LastEntry
409
410
    public String firstEntry() {
411
        long firstAccess = Long.MAX_VALUE;
412
        String firstEntry = "";
413
        for (String ip : entriesByIp.keySet()) {
414
            for (String entry : entriesByIp.get(ip)) {
415
                try {
416
                    long entryDate = AccessLogUtils
417
                            .parseDateAsLongFromEntry(entry);
418
                    if (entryDate < firstAccess) {
419
                        firstAccess = entryDate;
420
                        firstEntry = entry;
421
                    }
422
                } catch (ParseException e) {
423
                    // TODO Auto-generated catch block
424
                    e.printStackTrace();
425
                }
426
            }
427
        }
428
        return firstEntry;
429
    }
430
431
    public String lastEntry() {
432
        long lastAccess = 0;
433
        String lastEntry = "";
434
        for (String ip : entriesByIp.keySet()) {
435
            for (String entry : entriesByIp.get(ip)) {
436
                try {
437
                    long entryDate = AccessLogUtils
438
                            .parseDateAsLongFromEntry(entry);
439
                    if (entryDate > lastAccess) {
440
                        lastAccess = entryDate;
441
                        lastEntry = entry;
442
                    }
443
                } catch (ParseException e) {
444
                    // TODO Auto-generated catch block
445
                    e.printStackTrace();
446
                }
447
            }
448
        }
449
        return lastEntry;
450
    }
451
452
}
(-)src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/template-testPlan.jmx (+167 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<jmeterTestPlan version="1.2" properties="2.3">
3
  <hashTree>
4
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="@PLAN_NAME@" enabled="true">
5
      <stringProp name="TestPlan.comments"></stringProp>
6
      <boolProp name="TestPlan.functional_mode">false</boolProp>
7
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
8
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="Variables definidas por el Usuario" enabled="true">
9
        <collectionProp name="Arguments.arguments">
10
          <elementProp name="SERVER-NAME" elementType="Argument">
11
            <stringProp name="Argument.name">SERVER-NAME</stringProp>
12
            <stringProp name="Argument.value">@SERVER_NAME@</stringProp>
13
            <stringProp name="Argument.metadata">=</stringProp>
14
          </elementProp>
15
          <elementProp name="SERVER-PORT" elementType="Argument">
16
            <stringProp name="Argument.name">SERVER-PORT</stringProp>
17
            <stringProp name="Argument.value">@SERVER_PORT@</stringProp>
18
            <stringProp name="Argument.metadata">=</stringProp>
19
          </elementProp>
20
          <elementProp name="SERVER-PROTOCOL" elementType="Argument">
21
            <stringProp name="Argument.name">SERVER-PROTOCOL</stringProp>
22
            <stringProp name="Argument.value">@SERVER_PROTOCOL@</stringProp>
23
            <stringProp name="Argument.metadata">=</stringProp>
24
          </elementProp>
25
          <elementProp name="DATE-FORMAT" elementType="Argument">
26
            <stringProp name="Argument.name">DATE-FORMAT</stringProp>
27
            <stringProp name="Argument.value">@DATE_FORMAT@</stringProp>
28
            <stringProp name="Argument.metadata">=</stringProp>
29
          </elementProp>
30
          <elementProp name="DATE-PATTERN" elementType="Argument">
31
            <stringProp name="Argument.name">DATE-PATTERN</stringProp>
32
            <stringProp name="Argument.value">@DATE_PATTERN@</stringProp>
33
            <stringProp name="Argument.metadata">=</stringProp>
34
          </elementProp>
35
          <elementProp name="LOG-FILE" elementType="Argument">
36
            <stringProp name="Argument.name">LOG-FILE</stringProp>
37
            <stringProp name="Argument.value">@LOG_FILE@</stringProp>
38
            <stringProp name="Argument.metadata">=</stringProp>
39
          </elementProp>
40
          
41
        </collectionProp>
42
      </elementProp>
43
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
44
    </TestPlan>
45
    <hashTree>
46
      <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="web server" enabled="true">
47
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Variables definidas por el Usuario" enabled="true">
48
          <collectionProp name="Arguments.arguments"/>
49
        </elementProp>
50
        <stringProp name="HTTPSampler.domain">${SERVER-NAME}</stringProp>
51
        <stringProp name="HTTPSampler.port">${SERVER-PORT}</stringProp>
52
        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
53
        <stringProp name="HTTPSampler.response_timeout"></stringProp>
54
        <stringProp name="HTTPSampler.protocol">${SERVER-PROTOCOL}</stringProp>
55
        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
56
        <stringProp name="HTTPSampler.path">/</stringProp>
57
        <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
58
      </ConfigTestElement>
59
      <hashTree/>
60
      <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
61
        <collectionProp name="CookieManager.cookies"/>
62
        <boolProp name="CookieManager.clearEachIteration">false</boolProp>
63
      </CookieManager>
64
      <hashTree/>
65
66
      @THREAD_GROUPS@
67
      
68
      <ResultCollector guiclass="StatGraphVisualizer" testclass="ResultCollector" testname="Aggregate Graph" enabled="true">
69
        <boolProp name="ResultCollector.error_logging">false</boolProp>
70
        <objProp>
71
          <name>saveConfig</name>
72
          <value class="SampleSaveConfiguration">
73
            <time>true</time>
74
            <latency>true</latency>
75
            <timestamp>true</timestamp>
76
            <success>true</success>
77
            <label>true</label>
78
            <code>true</code>
79
            <message>true</message>
80
            <threadName>true</threadName>
81
            <dataType>true</dataType>
82
            <encoding>false</encoding>
83
            <assertions>true</assertions>
84
            <subresults>true</subresults>
85
            <responseData>false</responseData>
86
            <samplerData>false</samplerData>
87
            <xml>true</xml>
88
            <fieldNames>false</fieldNames>
89
            <responseHeaders>false</responseHeaders>
90
            <requestHeaders>false</requestHeaders>
91
            <responseDataOnError>false</responseDataOnError>
92
            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
93
            <assertionsResultsToSave>0</assertionsResultsToSave>
94
            <bytes>true</bytes>
95
          </value>
96
        </objProp>
97
        <stringProp name="filename"></stringProp>
98
      </ResultCollector>
99
      <hashTree/>
100
      <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
101
        <boolProp name="ResultCollector.error_logging">false</boolProp>
102
        <objProp>
103
          <name>saveConfig</name>
104
          <value class="SampleSaveConfiguration">
105
            <time>true</time>
106
            <latency>true</latency>
107
            <timestamp>true</timestamp>
108
            <success>true</success>
109
            <label>true</label>
110
            <code>true</code>
111
            <message>true</message>
112
            <threadName>true</threadName>
113
            <dataType>true</dataType>
114
            <encoding>false</encoding>
115
            <assertions>true</assertions>
116
            <subresults>true</subresults>
117
            <responseData>false</responseData>
118
            <samplerData>false</samplerData>
119
            <xml>true</xml>
120
            <fieldNames>false</fieldNames>
121
            <responseHeaders>false</responseHeaders>
122
            <requestHeaders>false</requestHeaders>
123
            <responseDataOnError>false</responseDataOnError>
124
            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
125
            <assertionsResultsToSave>0</assertionsResultsToSave>
126
            <bytes>true</bytes>
127
          </value>
128
        </objProp>
129
        <stringProp name="filename"></stringProp>
130
      </ResultCollector>
131
      <hashTree/>
132
      <ResultCollector guiclass="SimpleDataWriter" testclass="ResultCollector" testname="Simple Data Writer" enabled="true">
133
      <boolProp name="ResultCollector.error_logging">false</boolProp>
134
      <objProp>
135
        <name>saveConfig</name>
136
        <value class="SampleSaveConfiguration">
137
          <time>true</time>
138
          <latency>true</latency>
139
          <timestamp>true</timestamp>
140
          <success>true</success>
141
          <label>true</label>
142
          <code>true</code>
143
          <message>true</message>
144
          <threadName>true</threadName>
145
          <dataType>true</dataType>
146
          <encoding>false</encoding>
147
          <assertions>false</assertions>
148
          <subresults>false</subresults>
149
          <responseData>false</responseData>
150
          <samplerData>false</samplerData>
151
          <xml>false</xml>
152
          <fieldNames>false</fieldNames>
153
          <responseHeaders>false</responseHeaders>
154
          <requestHeaders>false</requestHeaders>
155
          <responseDataOnError>false</responseDataOnError>
156
          <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
157
          <assertionsResultsToSave>0</assertionsResultsToSave>
158
          <bytes>true</bytes>
159
        </value>
160
      </objProp>
161
      <stringProp name="filename">@RESULT_FILE@</stringProp>
162
    </ResultCollector>
163
    <hashTree/>
164
     </hashTree>
165
    </hashTree>
166
  </hashTree>
167
</jmeterTestPlan>
(-)test/src/org/apache/jmeter/timers/AccessLogTimerTest.java (+76 lines)
Line 0 Link Here
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *   http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 * 
17
 */
18
19
package org.apache.jmeter.timers;
20
21
import java.io.IOException;
22
23
import org.apache.jmeter.junit.JMeterTestCase;
24
25
public class AccessLogTimerTest extends JMeterTestCase {
26
27
    private AccessLogTimer timer;
28
29
    public AccessLogTimerTest(String arg0) {
30
        super(arg0);
31
    }
32
33
    @Override
34
    protected void setUp() throws Exception {
35
        timer = new AccessLogTimer();
36
        timer.setDateFormat(AccessLogTimer.DEFAULT_DATE_FORMAT);
37
        timer.setDatePattern(AccessLogTimer.DEFAULT_DATE_PATTERN);
38
    }
39
40
    public void testTimerCalculatesDelaysOfSampleLogAtOffset0With29Entries()
41
            throws IOException {
42
        long[] expectedDelays = { 0, 0, 3, 11, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
43
                0, 16, 7, 0, 3, 1, 0, 0, 0, 3, 2, 8, 0, 2 };
44
        testDelays("0", "29", expectedDelays);
45
    }
46
47
    public void testTimerCalculatesDelaysOfSampleLogAtOffset38With1Entry()
48
            throws IOException {
49
        long[] expectedDelays = { 0 };
50
        testDelays("38", "1", expectedDelays);
51
    }
52
53
    public void testTimerCalculatesDelaysOfSampleLogAtOffset39With5Entries()
54
            throws IOException {
55
        long[] expectedDelays = { 0, 0, 14, 2, 24 };
56
        testDelays("39", "5", expectedDelays);
57
    }
58
59
    public void testTimerCalculatesDelaysOfSampleLogAtOffset47With2Entries()
60
            throws IOException {
61
        long[] expectedDelays = { 0, 1 };
62
        testDelays("47", "2", expectedDelays);
63
    }
64
65
    private void testDelays(String offset, String numEntries,
66
            long[] expectedDelays) {
67
        timer.setFile(filePrefix + "testfiles/sample_access_log.jmeter.log");
68
        timer.setOffset(offset);
69
        timer.setNumEntries(numEntries);
70
71
        for (int i = 0; i < expectedDelays.length; i++) {
72
            assertEquals(expectedDelays[i] * 1000, (long) timer.delay());
73
        }
74
    }
75
76
}
(-)test/src/org/apache/jmeter/junit/JMeterTestCase.java (-1 / +1 lines)
Lines 39-45 Link Here
39
 */
39
 */
40
public abstract class JMeterTestCase extends TestCase {
40
public abstract class JMeterTestCase extends TestCase {
41
    // Used by findTestFile
41
    // Used by findTestFile
42
    private static final String filePrefix;
42
    protected static final String filePrefix;
43
43
44
    public JMeterTestCase() {
44
    public JMeterTestCase() {
45
        super();
45
        super();
(-)test/src/org/apache/jmeter/junit/JMeterTest.java (+1 lines)
Lines 356-361 Link Here
356
                (title != null && title.length() > 0) // Will be "" for internal components
356
                (title != null && title.length() > 0) // Will be "" for internal components
357
                && (title.toUpperCase(java.util.Locale.ENGLISH).indexOf("(ALPHA") == -1) 
357
                && (title.toUpperCase(java.util.Locale.ENGLISH).indexOf("(ALPHA") == -1) 
358
                && (title.toUpperCase(java.util.Locale.ENGLISH).indexOf("(BETA") == -1)
358
                && (title.toUpperCase(java.util.Locale.ENGLISH).indexOf("(BETA") == -1)
359
                && (!title.matches("Access_Log_Timer"))
359
                && (!title.matches("Example\\d+")) // Skip the example samplers ...
360
                && (!title.matches("Example\\d+")) // Skip the example samplers ...
360
                && (!name.startsWith("org.apache.jmeter.examples."))
361
                && (!name.startsWith("org.apache.jmeter.examples."))
361
                && (!name.startsWith("org.apache.jmeter.report.")) // Skip report packages as implementation is incomplete
362
                && (!name.startsWith("org.apache.jmeter.report.")) // Skip report packages as implementation is incomplete
(-)test/src/org/apache/jmeter/protocol/http/util/accesslog/TestTCLogParser.java (-26 / +65 lines)
Lines 18-62 Link Here
18
18
19
package org.apache.jmeter.protocol.http.util.accesslog;
19
package org.apache.jmeter.protocol.http.util.accesslog;
20
20
21
import java.io.BufferedReader;
22
import java.io.FileInputStream;
23
import java.io.InputStream;
24
21
import org.apache.jmeter.junit.JMeterTestCase;
25
import org.apache.jmeter.junit.JMeterTestCase;
22
import org.apache.jmeter.protocol.http.sampler.HTTPNullSampler;
26
import org.apache.jmeter.protocol.http.sampler.HTTPNullSampler;
23
27
24
// TODO - more tests needed
28
// TODO - more tests needed
25
29
26
public class TestTCLogParser  extends JMeterTestCase {
30
public class TestTCLogParser extends JMeterTestCase {
27
        private static final TCLogParser tclp = new TCLogParser();
31
    private static final TCLogParser tclp = new TCLogParser();
28
32
29
        private static final String URL1 = "127.0.0.1 - - [08/Jan/2003:07:03:54 -0500] \"GET /addrbook/ HTTP/1.1\" 200 1981";
33
    private static final String URL1 = "127.0.0.1 - - [08/Jan/2003:07:03:54 -0500] \"GET /addrbook/ HTTP/1.1\" 200 1981";
30
34
31
        private static final String URL2 = "127.0.0.1 - - [08/Jan/2003:07:03:54 -0500] \"GET /addrbook?x=y HTTP/1.1\" 200 1981";
35
    private static final String URL2 = "127.0.0.1 - - [08/Jan/2003:07:03:54 -0500] \"GET /addrbook?x=y HTTP/1.1\" 200 1981";
32
36
33
        private static final String TEST3 = "127.0.0.1 - - [08/Jan/2003:07:03:54 -0500] \"HEAD /addrbook/ HTTP/1.1\" 200 1981";
37
    private static final String TEST3 = "127.0.0.1 - - [08/Jan/2003:07:03:54 -0500] \"HEAD /addrbook/ HTTP/1.1\" 200 1981";
34
38
35
        public void testConstruct() throws Exception {
39
    public void testConstruct() throws Exception {
36
            TCLogParser tcp;
40
        TCLogParser tcp;
37
            tcp = new TCLogParser();
41
        tcp = new TCLogParser();
38
            assertNull("Should not have set the filename", tcp.FILENAME);
42
        assertNull("Should not have set the filename", tcp.FILENAME);
39
43
40
            String file = "testfiles/access.log";
44
        String file = "testfiles/access.log";
41
            tcp = new TCLogParser(file);
45
        tcp = new TCLogParser(file);
42
            assertEquals("Filename should have been saved", file, tcp.FILENAME);
46
        assertEquals("Filename should have been saved", file, tcp.FILENAME);
43
        }
47
    }
44
48
45
        public void testcleanURL() throws Exception {
49
    public void testcleanURL() throws Exception {
46
            String res = tclp.cleanURL(URL1);
50
        String res = tclp.cleanURL(URL1);
47
            assertEquals("/addrbook/", res);
51
        assertEquals("/addrbook/", res);
48
            assertNull(tclp.stripFile(res, new HTTPNullSampler()));
52
        assertNull(tclp.stripFile(res, new HTTPNullSampler()));
49
        }
53
    }
50
54
51
        public void testcheckURL() throws Exception {
55
    public void testcheckURL() throws Exception {
52
            assertFalse("URL does not have a query", tclp.checkURL(URL1));
56
        assertFalse("URL does not have a query", tclp.checkURL(URL1));
53
            assertTrue("URL is a query", tclp.checkURL(URL2));
57
        assertTrue("URL is a query", tclp.checkURL(URL2));
54
        }
58
    }
55
59
56
        public void testHEAD() throws Exception {
60
    public void testHEAD() throws Exception {
57
            String res = tclp.cleanURL(TEST3);
61
        String res = tclp.cleanURL(TEST3);
58
            assertEquals("/addrbook/", res);
62
        assertEquals("/addrbook/", res);
59
            assertNull(tclp.stripFile(res, new HTTPNullSampler()));
63
        assertNull(tclp.stripFile(res, new HTTPNullSampler()));
64
    }
65
66
    public void testGivenAnOffset0TheReaderIsPositionedAtLine0()
67
            throws Exception {
68
        String logName = filePrefix + "testfiles/sample_access_log.jmeter.log";
69
        InputStream is = new FileInputStream(logName);
70
71
        String expectedLineAt0 = "10.215.119.76 - - [01/Aug/2012:08:16:45 +0200] \"GET /boib/index.do?lang=ca HTTP/1.1\" 200 5505 \"http://www.novalid.site/root/index.do?lang=ca\" \"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)\" www.novalid.site";
72
        BufferedReader reader = TCLogParser.getReaderAtLine(is, 0);
73
        assertEquals(expectedLineAt0, reader.readLine());
74
        is.close();
75
    }
76
77
    public void testGivenAnOffset29TheReaderIsPositionedAtLine29()
78
            throws Exception {
79
        String logName = filePrefix + "testfiles/sample_access_log.jmeter.log";
80
        InputStream is = new FileInputStream(logName);
81
82
        String expectedLineAt29 = "188.185.46.145 - - [01/Aug/2012:08:17:02 +0200] \"GET /root/imgs/base.gif HTTP/1.1\" 200 49 \"http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6\" \"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)\" www.novalid.site";
83
        BufferedReader reader = TCLogParser.getReaderAtLine(is, 29);
84
        assertEquals(expectedLineAt29, reader.readLine());
85
        is.close();
86
    }
87
88
    public void testGivenAnOffsetGreaterThanLogTheReaderThrowsException()
89
            throws Exception {
90
        String logName = filePrefix + "testfiles/sample_access_log.jmeter.log";
91
        InputStream is = new FileInputStream(logName);
92
93
        try {
94
            TCLogParser.getReaderAtLine(is, 1000);
95
            fail();
96
        } catch (java.util.NoSuchElementException ex) {
97
60
        }
98
        }
99
    }
61
100
62
}
101
}
(-)test/src/org/apache/jmeter/protocol/http/util/accesslog/TestPlanGeneratorTest.java (+389 lines)
Line 0 Link Here
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *   http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 */
18
19
package org.apache.jmeter.protocol.http.util.accesslog;
20
21
import static org.apache.jmeter.util.AccessLogUtils.DATE_EMPTY;
22
import static org.apache.jmeter.util.AccessLogUtils.LOGFORMAT_COMBINED;
23
import static org.apache.jmeter.util.AccessLogUtils.parseDateAsLong;
24
import static org.apache.jmeter.util.AccessLogUtils.parseDateAsLongFromEntry;
25
26
import java.io.File;
27
import java.io.IOException;
28
import java.text.ParseException;
29
import java.util.HashMap;
30
import java.util.List;
31
import java.util.Map;
32
import java.util.Set;
33
34
import org.apache.commons.io.FileUtils;
35
import org.apache.jmeter.junit.JMeterTestCase;
36
import org.apache.jmeter.protocol.http.util.accesslog.TestPlanGenerator.DateRange;
37
import org.apache.jmeter.protocol.http.util.accesslog.TestPlanGenerator.PlanRequest;
38
import org.junit.Before;
39
40
public class TestPlanGeneratorTest extends JMeterTestCase {
41
42
    private TestPlanGenerator generator;
43
    private String groupedLog;
44
    private PlanRequest request;
45
46
    @Before
47
    @Override
48
    public void setUp() throws Exception {
49
        generator = new TestPlanGenerator();
50
        DateRange dateRange = new DateRange("01/Aug/2012:08:16:45 +0200",
51
                "01/Aug/2012:08:17:45 +0200");
52
        String logFile = filePrefix + "testfiles/sample_access_log.log";
53
        String outputDir = System.getProperty("user.dir") + "/";
54
        groupedLog = outputDir + "/sample_access_log.jmeter.log";
55
56
        request = new PlanRequest();
57
        request.logFile = logFile;
58
        request.range = dateRange;
59
        request.outputDir = outputDir;
60
        request.server = "your.accessed.server";
61
        request.port = "80";
62
        request.protocol = "HTTP";
63
        request.logFormat = LOGFORMAT_COMBINED + " %v";
64
        request.virtualhost = "www.novalid.site";
65
        request.printProgress = false;
66
        request.progressInterval = 1000; // if true, display progress each 1000
67
                                         // entries
68
69
        validateFileExists(logFile);
70
        deleteGroupedLogIfExists();
71
72
    }
73
74
    @Override
75
    protected void tearDown() throws Exception {
76
    }
77
78
    public void testGivenDateRangeInsideAccessLogRangeGeneratesTestPlan() {
79
        try {
80
81
            // uncomment below to display generation info in console
82
            // request.printProgress=true;
83
84
            request.range = new DateRange("01/Aug/2012:08:16:45 +0200",
85
                    "01/Aug/2012:08:17:45 +0200");
86
87
            String planFile = generator.generateTestPlan(request);
88
            assertEquals(request.outputDir
89
                    + "01Aug2012081645_01Aug2012081745-plan.jmx", planFile);
90
91
            validateFileExists(groupedLog);
92
93
            Set<String> ips = generator.ips;
94
            validatePlan(planFile, ips);
95
96
            if (request.printProgress) {
97
                printSummary(planFile);
98
            }
99
100
        } catch (IOException e) {
101
            e.printStackTrace();
102
            fail();
103
        } catch (ParseException e) {
104
            // TODO Auto-generated catch block
105
            e.printStackTrace();
106
            fail();
107
        }
108
109
    }
110
111
    public void testGivenDateRangeOutsideAccessLogRangeGeneratesTestPlan() {
112
        try {
113
            request.range = new DateRange("01/Aug/2012:00:16:45 +0200",
114
                    "02/Aug/2012:08:17:45 +0200");
115
            String planFile = generator.generateTestPlan(request);
116
117
            Set<String> ips = generator.ips;
118
            validatePlan(planFile, ips);
119
120
            if (request.printProgress) {
121
                printSummary(planFile);
122
            }
123
124
        } catch (IOException e) {
125
            e.printStackTrace();
126
            fail();
127
        } catch (ParseException e) {
128
            // TODO Auto-generated catch block
129
            e.printStackTrace();
130
            fail();
131
        }
132
133
    }
134
135
    public void testGivenNoRangeGeneratesTestPlan() {
136
        try {
137
            request.range = new DateRange("", "");
138
            String planFile = generator.generateTestPlan(request);
139
140
            Set<String> ips = generator.ips;
141
            validatePlan(planFile, ips);
142
143
            if (request.printProgress) {
144
                printSummary(planFile);
145
            }
146
147
        } catch (IOException e) {
148
            e.printStackTrace();
149
            fail();
150
        } catch (ParseException e) {
151
            // TODO Auto-generated catch block
152
            e.printStackTrace();
153
            fail();
154
        }
155
156
    }
157
158
    public void testGivenTimeRangeGeneratesThreadGroup() throws IOException,
159
            ParseException {
160
161
        generator.generateGroupedAccessLog(request);
162
163
        String ip = "10.215.119.76";
164
        String threadGroup = generator.generateThreadGroupForTheIP(ip,
165
                request.range);
166
        validateThreadgroup(threadGroup, ip);
167
168
    }
169
170
    private void deleteGroupedLogIfExists() {
171
        File f = new File(groupedLog);
172
        if (f.exists()) {
173
            try {
174
                FileUtils.forceDelete(f);
175
            } catch (IOException e) {
176
                // TODO Auto-generated catch block
177
                e.printStackTrace();
178
            }
179
        }
180
    }
181
182
    public void testGivenNoDateRangeGeneratesJMeterAccessLogCompleteAndGroupedByIp()
183
            throws IOException, ParseException {
184
        request.range = new DateRange("", "");
185
        generator.generateGroupedAccessLog(request);
186
        validateFileExists(groupedLog);
187
        assertEquals(9, generator.entriesByIp.size());
188
        assertEquals(84, generator.entryCount());
189
        validateRange(84);
190
    }
191
192
    public void testGivenDateRangeGeneratesJMeterAccessLogInsideRangeAndGroupedByIp()
193
            throws IOException, ParseException {
194
        request.range = new DateRange("01/Aug/2012:08:16:45 +0200",
195
                "01/Aug/2012:08:17:45 +0200");
196
        generator.generateGroupedAccessLog(request);
197
        validateFileExists(groupedLog);
198
        assertEquals(7, generator.entriesByIp.size());
199
        assertEquals(49, generator.entryCount());
200
        validateOffsets(generator.offsetsByIp);
201
    }
202
203
    public void testGivenDateRangeWithoutStartTimeGeneratesJMeterAccessLogInsideRangeAndGroupedByIp()
204
            throws IOException, ParseException {
205
        request.range = new DateRange("", "01/Aug/2012:08:17:45 +0200");
206
        generator.generateGroupedAccessLog(request);
207
        validateFileExists(groupedLog);
208
        assertEquals(59, generator.entryCount());
209
        validateRange(59);
210
    }
211
212
    public void testGivenDateRangeWithoutEndTimeGeneratesJMeterAccessLogInsideRangeAndGroupedByIp()
213
            throws IOException, ParseException {
214
        request.range = new DateRange("01/Aug/2012:08:16:45 +0200", null);
215
        generator.generateGroupedAccessLog(request);
216
        validateFileExists(groupedLog);
217
        assertEquals(74, generator.entryCount());
218
        validateRange(74);
219
    }
220
/*
221
    public void testGivenGZIPAccessLogAndNoDateRangeGeneratesJMeterAccessLogInsideRangeAndGroupedByIp()
222
            throws IOException, ParseException {
223
        request.logFile = filePrefix + "testfiles/sample_access_log.log.gz";
224
        request.range = new DateRange("01/Aug/2012:08:16:45 +0200", null);
225
        groupedLog = request.outputDir + "sample_access_log.log.jmeter.log";
226
        deleteGroupedLogIfExists();
227
        generator.generateGroupedAccessLog(request);
228
        validateFileExists(groupedLog);
229
        assertEquals(74, generator.entryCount());
230
        validateRange(74);
231
    }
232
    */
233
234
    private void validateRange(int numFileEntries) {
235
        try {
236
            long start = parseDateAsLong(request.range.startTime);
237
            long end = parseDateAsLong(request.range.endTime);
238
            List<String> entries = FileUtils.readLines(new File(groupedLog));
239
            assertEquals(numFileEntries, entries.size());
240
            for (String entry : entries) {
241
                long entryDate = parseDateAsLongFromEntry(entry);
242
                assertTrue(generator.isEntryDateInsideRequestedRange(entryDate,
243
                        start, end));
244
            }
245
        } catch (IOException e) {
246
            fail();
247
        } catch (ParseException e) {
248
            fail();
249
        }
250
    }
251
252
    private void validateOffsets(Map<String, Long> offsetsByIp) {
253
        Map<String, Long> expected = new HashMap<String, Long>();
254
        expected.put("10.215.119.76", 0L);
255
        expected.put("188.185.46.145", 29L);
256
        expected.put("110.215.25.80", 34L);
257
        expected.put("80.91.80.52", 38L);
258
        expected.put("110.215.13.168", 39L);
259
        expected.put("81.45.52.175", 44L);
260
        expected.put("179.109.214.208", 47L);
261
        assertSame(expected.size(), offsetsByIp.size());
262
263
        for (String ip : offsetsByIp.keySet()) {
264
            assertSame(expected.get(ip), offsetsByIp.get(ip));
265
        }
266
    }
267
268
    public void testGivenADateRangeTheEntryDateIsInRange()
269
            throws ParseException {
270
271
        long start = parseDateAsLong("01/Aug/2012:08:16:45 +0200");
272
        long end = parseDateAsLong("01/Aug/2012:09:17:45 +0200");
273
274
        // case entry date inside range
275
        long testedTime = parseDateAsLong("01/Aug/2012:09:16:45 +0200");
276
        assertTrue(generator.isEntryDateInsideRequestedRange(testedTime, start,
277
                end));
278
279
        // case entry date equals start time
280
        testedTime = parseDateAsLong("01/Aug/2012:08:16:45 +0200");
281
        assertTrue(generator.isEntryDateInsideRequestedRange(testedTime, start,
282
                end));
283
284
        // case entry date smaller start time
285
        testedTime = parseDateAsLong("01/Aug/2012:08:16:44 +0200");
286
        assertFalse(generator.isEntryDateInsideRequestedRange(testedTime,
287
                start, end));
288
289
        // case entry date equals end time
290
        testedTime = parseDateAsLong("01/Aug/2012:09:17:45 +0200");
291
        assertTrue(generator.isEntryDateInsideRequestedRange(testedTime, start,
292
                end));
293
294
        // case entry date greater than end time
295
        testedTime = parseDateAsLong("01/Aug/2012:09:17:46 +0200");
296
        assertFalse(generator.isEntryDateInsideRequestedRange(testedTime,
297
                start, end));
298
    }
299
300
    public void testIfEntryDateIsInsideRangeWhenStartIsUnlimited()
301
            throws ParseException {
302
303
        // case start time is unlimited and the entry time inside end range
304
        long testedTime = parseDateAsLong("01/Aug/2012:09:17:40 +0200");
305
        long end = parseDateAsLong("01/Aug/2012:09:17:45 +0200");
306
        assertTrue(generator.isEntryDateInsideRequestedRange(testedTime,
307
                DATE_EMPTY, end));
308
    }
309
310
    public void testIfEntryDateIsInsideRangeWhenEndIsUnlimited()
311
            throws ParseException {
312
313
        // case end time is unlimited and the entry time inside start range
314
        long start = parseDateAsLong("01/Aug/2012:09:17:45 +0200");
315
        long testedTime = parseDateAsLong("01/Aug/2012:09:18:40 +0200");
316
        assertTrue(generator.isEntryDateInsideRequestedRange(testedTime, start,
317
                DATE_EMPTY));
318
    }
319
320
    public void testGivenFullAccessLogFindsAllDifferentIPs() throws IOException {
321
        Set<String> ips = generator.findIPSetInAccessLog(new File(
322
                request.logFile));
323
        assertSame(9, ips.size());
324
    }
325
326
    public void testGivenDateRangeConstructsPlanFileName() {
327
        String fileName = generator.constructPlanFileName(request.range);
328
        assertEquals("01Aug2012081645_01Aug2012081745-plan.jmx", fileName);
329
    }
330
331
    public void testGivenDateRemoveOffset() {
332
        String date = generator.removeOffsetFromDate(request.range.startTime);
333
        assertEquals("01/Aug/2012:08:16:45", date);
334
    }
335
336
    private void validatePlan(String planFile, Set<String> ips) {
337
        String plan = "";
338
        try {
339
            plan = FileUtils.readFileToString(new File(planFile));
340
        } catch (IOException e) {
341
            // TODO Auto-generated catch block
342
            e.printStackTrace();
343
        }
344
        assertFalse(plan.contains("@PLAN_NAME@"));
345
        assertFalse(plan.contains("@THREAD_GROUPS@"));
346
        assertFalse(plan.contains("@LOG_FILE@"));
347
        assertFalse(plan.contains("@IP@"));
348
        assertFalse(plan.contains("@DELAY@"));
349
        assertFalse(plan.contains("@DURATION@"));
350
        assertFalse(plan.contains("@DATE_FORMAT@"));
351
        assertFalse(plan.contains("@DATE_PATTERN@"));
352
        assertFalse(plan.contains("@RESULT_FILE@"));
353
354
        for (String ip : ips) {
355
            assertTrue(plan.contains(ip));
356
        }
357
    }
358
359
    private void validateThreadgroup(String threadGroup, String ip) {
360
        assertFalse(threadGroup.contains("@IP@"));
361
        assertFalse(threadGroup.contains("@DELAY@"));
362
        assertFalse(threadGroup.contains("@DURATION@"));
363
        assertFalse(threadGroup.contains("@NUM_ENTRIES@"));
364
        assertFalse(threadGroup.contains("@OFFSET@"));
365
        assertTrue(threadGroup.contains(ip));
366
        assertTrue(threadGroup.contains("dateFormat"));
367
        assertTrue(threadGroup.contains("datePattern"));
368
        assertTrue(threadGroup.contains("file"));
369
        assertTrue(threadGroup.contains("offset"));
370
        assertTrue(threadGroup.contains("numEntries"));
371
372
    }
373
374
    private void validateFileExists(String logFile) {
375
        assertTrue(new File(logFile).exists());
376
    }
377
378
    private void printSummary(String planFile) {
379
        System.out.println("\nSummary:");
380
        System.out.println("log file in: " + request.logFile);
381
        System.out.println("plan available in: " + planFile);
382
        System.out.println("generated log available in: "
383
                + generator.groupedLogName);
384
        System.out.println("number of IPs: " + generator.ipCount());
385
        System.out.println("number of entries: " + generator.entryCount());
386
        System.out.println("result file will be: " + generator.resultFileName);
387
388
    }
389
}
(-)test/src/org/apache/jmeter/protocol/http/util/accesslog/AccessLogUtilsTest.java (+123 lines)
Line 0 Link Here
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *   http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 */
18
19
package org.apache.jmeter.protocol.http.util.accesslog;
20
21
import java.text.ParseException;
22
import org.apache.jmeter.junit.JMeterTestCase;
23
import static org.apache.jmeter.util.AccessLogUtils.*;
24
25
public class AccessLogUtilsTest extends JMeterTestCase {
26
27
    private String entryCombinedVhost = "110.215.25.80 - - [01/Aug/2012:08:00:00 +0200] \"GET /vern/archivo.do?id=1189417 HTTP/1.1\" 200 30329 \"http://www.foo.com/vern/organigrama/area.do?lang=ca&coduo=2705\" \"Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1\" www.foo.com";
28
    private String entryCommonVHost = "110.215.25.80 - - [01/Aug/2012:08:00:00 +0200] \"GET /vern/archivo.do?id=1189417 HTTP/1.1\" 200 30329 www.foo.com";
29
30
    public void testParseIPFromEntry() {
31
        String expectedIp = "110.215.25.80";
32
        String ip = getIpAddress(entryCombinedVhost);
33
        assertEquals(expectedIp, ip);
34
    }
35
36
    public void testGetDateFromEntry() throws ParseException {
37
        assertEquals("01/Aug/2012:08:00:00 +0200",
38
                getDateFromEntry(entryCombinedVhost));
39
    }
40
41
    public void testParseEntryOfType1ReturnTimeAsLong() {
42
        long expected = 1341270000000L;
43
        String entry = "85.119.193.100 - - [03/Jul/2012:00:00:00 +0100] \"GET /sacmicrofront/v4/css/estils_print.css HTTP/1.1\" 200 9167";
44
        try {
45
            long time = parseDateAsLongFromEntry(entry);
46
            assertEquals(expected, time);
47
        } catch (ParseException e) {
48
            fail();
49
        }
50
    }
51
52
    public void testParseEntryOfType2ReturnTimeAsLong() {
53
        long expected = 1341270000000L;
54
        String entry = "85.119.193.33 - - [03/Jul/2012:00:00:00 +0100] \"GET /sacmicrofront/contenido.do?idsite=117&lang=CA&cont=5189 HTTP/1.1\" 200 1459 \"http://alawarstore.com\" \"Opera/7.54 (Windows NT 5.1; U)  [pl]\" www.caib.es";
55
        try {
56
            long time = parseDateAsLongFromEntry(entry);
57
            assertEquals(expected, time);
58
        } catch (ParseException e) {
59
            fail();
60
        }
61
    }
62
63
    public void testGivenCombinedLogFormatFindsThePattern() {
64
        String pattern = constructPatternOfLogFormat(LOGFORMAT_COMBINED);
65
        assertEquals(COMBINED_PATTERN, pattern);
66
    }
67
68
    public void testGivenExtraCombinedLogFormatFindsThePattern() {
69
        String pattern = constructPatternOfLogFormat(LOGFORMAT_COMBINED + " %v");
70
        assertEquals(COMBINED_PATTERN + " (" + VHOST_PATTERN + ")", pattern);
71
    }
72
73
    public void testGetVirtualHostFromExtraCombinedEntry() {
74
        String expectedVHost = "www.foo.com";
75
        String logFormat = LOGFORMAT_COMBINED + " %v";
76
        String vhost = getFieldFromEntry("%v", entryCombinedVhost, logFormat);
77
        assertEquals(expectedVHost, vhost);
78
    }
79
80
    public void testGetIPFromExtraCombinedEntry() {
81
        String expected = "110.215.25.80";
82
        String logFormat = LOGFORMAT_COMBINED + " %v";
83
        String vhost = getFieldFromEntry("%h", entryCombinedVhost, logFormat);
84
        assertEquals(expected, vhost);
85
    }
86
87
    public void testGetIPFromCombinedEntry() {
88
        String expected = "110.215.25.80";
89
        String logFormat = LOGFORMAT_COMBINED;
90
        String vhost = getFieldFromEntry("%h", entryCombinedVhost, logFormat);
91
        assertEquals(expected, vhost);
92
    }
93
94
    public void testGetIPFromCommonEntry() {
95
        String expected = "110.215.25.80";
96
        String logFormat = LOGFORMAT_COMMON;
97
        String vhost = getFieldFromEntry("%h", entryCommonVHost, logFormat);
98
        assertEquals(expected, vhost);
99
    }
100
101
    public void testGetIPFromExtraCommmonEntry() {
102
        String expected = "110.215.25.80";
103
        String logFormat = LOGFORMAT_COMMON + " %v";
104
        String vhost = getFieldFromEntry("%h", entryCommonVHost, logFormat);
105
        assertEquals(expected, vhost);
106
    }
107
108
    public void testGetVHostFromExtraCommmonEntry() {
109
        String expected = "www.foo.com";
110
        String logFormat = LOGFORMAT_COMMON + " %v";
111
        String vhost = getFieldFromEntry("%v", entryCommonVHost, logFormat);
112
        assertEquals(expected, vhost);
113
    }
114
115
    public void testGetVHostFromExtraCombinedEntryWithNoSize() {
116
        String expected = "www.foo.com";
117
        String entryCombinedVhost = "110.215.25.80 - - [01/Aug/2012:08:00:00 +0200] \"GET /vern/archivo.do?id=1189417 HTTP/1.1\" 302 - \"http://www.foo.com/vern/organigrama/area.do?lang=ca&coduo=2705\" \"Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1\" www.foo.com";
118
        String logFormat = LOGFORMAT_COMBINED + " %v";
119
        String vhost = getFieldFromEntry("%v", entryCombinedVhost, logFormat);
120
        assertEquals(expected, vhost);
121
    }
122
123
}
(-)bin/testfiles/sample_access_log.log (+84 lines)
Line 0 Link Here
1
10.215.119.76 - - [01/Aug/2012:08:16:17 +0200] "GET /webcaib/favicon.ico HTTP/1.1" 200 318 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
2
110.215.25.80 - - [01/Aug/2012:08:16:36 +0200] "GET / HTTP/1.1" 302 208 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
3
10.215.119.76 - - [01/Aug/2012:08:16:36 +0200] "GET /root/ HTTP/1.1" 200 100 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
4
81.45.52.175 - - [01/Aug/2012:08:16:36 +0200] "GET /root/index.do?lang=ca HTTP/1.1" 200 6637 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
5
10.215.119.76 - - [01/Aug/2012:08:16:42 +0200] "GET /root/css/estils.css HTTP/1.1" 200 34247 "http://www.novalid.site/root/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
6
81.45.52.175 - - [01/Aug/2012:08:16:42 +0200] "GET /root/css/portada.css HTTP/1.1" 200 4087 "http://www.novalid.site/root/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
7
80.91.80.52 - - [01/Aug/2012:08:16:42 +0200] "GET /root/css/estils_print.css HTTP/1.1" 200 24466 "http://www.novalid.site/root/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
8
10.215.119.76 - - [01/Aug/2012:08:16:42 +0200] "GET /root/css/modulo_twitter.css HTTP/1.1" 200 2309 "http://www.novalid.site/root/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
9
110.215.25.80 - - [01/Aug/2012:08:16:43 +0200] "GET /root/servletTwitter?q=iblabla&count=9&callback=jQuery17107445738501390231_1343801802385&_=1343801803385 HTTP/1.1" 200 2316 "http://www.novalid.site/root/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
10
10.215.119.76 - - [01/Aug/2012:08:16:44 +0200] "GET /favicon.ico HTTP/1.1" 404 54 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
11
10.215.119.76 - - [01/Aug/2012:08:16:45 +0200] "GET /boib/index.do?lang=ca HTTP/1.1" 200 5505 "http://www.novalid.site/root/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
12
10.215.119.76 - - [01/Aug/2012:08:16:45 +0200] "GET /root/js/comuns.js HTTP/1.1" 200 5706 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
13
81.45.52.175 - - [01/Aug/2012:08:16:45 +0200] "GET /root/imgs/titols/boib.jpg HTTP/1.1" 200 11291 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
14
81.45.52.175 - - [01/Aug/2012:08:16:45 +0200] "GET /root/imgs/icones/cO.gif HTTP/1.1" 200 524 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
15
81.45.52.175 - - [01/Aug/2012:08:16:45 +0200] "GET /root/imgs/icones/cE.gif HTTP/1.1" 200 198 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
16
10.215.119.76 - - [01/Aug/2012:08:16:48 +0200] "GET /boib/index.do?lang=ca&p_mes=7&p_any=2012 HTTP/1.1" 200 5513 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
17
110.215.25.80 - - [01/Aug/2012:08:16:50 +0200] "GET /boib/index.do?lang=ca&p_mes=6&p_any=2012 HTTP/1.1" 200 5697 "http://www.novalid.site/boib/index.do?lang=ca&p_mes=7&p_any=2012" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
18
110.215.25.80 - - [01/Aug/2012:08:16:55 +0200] "GET /boib/index.do?lang=ca&p_mes=7&p_any=2012 HTTP/1.1" 200 5513 "http://www.novalid.site/boib/index.do?lang=ca&p_mes=6&p_any=2012" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
19
10.215.119.76 - - [01/Aug/2012:08:16:59 +0200] "GET /govern/organigrama/area.do?lang=ca&coduo=6 HTTP/1.1" 200 6238 "http://www.novalid.site/boib/index.do?lang=ca&p_mes=7&p_any=2012" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
20
110.215.25.80 - - [01/Aug/2012:08:17:02 +0200] "GET /root/js/noticiesNivell3.js HTTP/1.1" 200 3003 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
21
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /root/imgs/destacats/fons.gif HTTP/1.1" 200 1669 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
22
80.91.80.52 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=874246 HTTP/1.1" 200 27724 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
23
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199225 HTTP/1.1" 200 39467 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
24
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1119561 HTTP/1.1" 200 56251 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
25
110.215.25.80 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1090299 HTTP/1.1" 200 65356 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
26
110.215.13.168 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199220 HTTP/1.1" 200 36400 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
27
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199216 HTTP/1.1" 200 35330 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
28
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199246 HTTP/1.1" 200 39171 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
29
188.185.46.145 - - [01/Aug/2012:08:17:02 +0200] "GET /root/imgs/base.gif HTTP/1.1" 200 49 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
30
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=953468 HTTP/1.1" 200 39580 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
31
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1201719 HTTP/1.1" 200 52286 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
32
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199286 HTTP/1.1" 200 84304 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
33
110.215.13.168 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1198774 HTTP/1.1" 200 74102 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
34
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199495 HTTP/1.1" 200 928118 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
35
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1196837 HTTP/1.1" 200 71711 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
36
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1197195 HTTP/1.1" 200 70269 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
37
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1194150 HTTP/1.1" 200 85268 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
38
188.185.46.145 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1193120 HTTP/1.1" 200 73355 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
39
110.215.13.168 - - [01/Aug/2012:08:17:16 +0200] "GET /govern/estadistica?estua=6&tipus=F&codi=1071995&url=http%3A%2F%2Fwww.novalid.site%2Fgovern%2Fsac%2Ffitxa.do%3Festua%3D6%26lang%3Dca%26codi%3D1022317%26coduo%3D6&lang=ca HTTP/1.1" 302 - "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
40
188.185.46.145 - - [01/Aug/2012:08:17:17 +0200] "GET /govern/sac/fitxa.do?estua=6&lang=ca&codi=1022317&coduo=6 HTTP/1.1" 200 3634 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
41
10.215.119.76 - - [01/Aug/2012:08:17:18 +0200] "GET /root/imgs/icones/pdf.gif HTTP/1.1" 200 1023 "http://www.novalid.site/govern/sac/fitxa.do?estua=6&lang=ca&codi=1022317&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
42
110.215.13.168 - - [01/Aug/2012:08:17:18 +0200] "GET /govern/archivo.do?id=1022318 HTTP/1.1" 200 30345 "http://www.novalid.site/govern/sac/fitxa.do?estua=6&lang=ca&codi=1022317&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
43
10.215.119.76 - - [01/Aug/2012:08:17:25 +0200] "GET /govern/president/index.do?lang=ca HTTP/1.1" 200 3891 "http://www.novalid.site/govern/sac/fitxa.do?estua=6&lang=ca&codi=1022317&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
44
10.215.119.76 - - [01/Aug/2012:08:17:25 +0200] "GET /fitxer/get?codi=873565 HTTP/1.1" 200 37961 "http://www.novalid.site/govern/president/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
45
10.215.119.76 - - [01/Aug/2012:08:17:28 +0200] "GET /govern/index.do?lang=ca HTTP/1.1" 200 3660 "http://www.novalid.site/govern/president/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
46
179.109.214.208 - - [01/Aug/2012:08:17:28 +0200] "GET /govern/archivo.do?id=203282 HTTP/1.1" 200 9817 "http://www.novalid.site/govern/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
47
188.185.46.145 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/organigrama/area.do?lang=ca&coduo=6 HTTP/1.1" 200 6238 "http://www.novalid.site/govern/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
48
10.215.119.76 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=874246 HTTP/1.1" 200 27724 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
49
10.215.119.76 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1119561 HTTP/1.1" 200 56251 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
50
188.185.46.145 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1199225 HTTP/1.1" 200 39467 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
51
10.215.119.76 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1090299 HTTP/1.1" 200 65356 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
52
10.215.119.76 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1199220 HTTP/1.1" 200 36400 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
53
179.109.214.208 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1199216 HTTP/1.1" 200 35330 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
54
10.215.119.76 - - [01/Aug/2012:08:17:32 +0200] "GET /govern/organizacion.do?coduo=6&lang=ca HTTP/1.1" 200 5642 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
55
10.215.119.76 - - [01/Aug/2012:08:17:34 +0200] "GET /govern/archivo.do?id=874246 HTTP/1.1" 200 27724 "http://www.novalid.site/govern/organizacion.do?coduo=6&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
56
10.215.119.76 - - [01/Aug/2012:08:17:42 +0200] "GET /govern/organigrama/area.do?coduo=994&lang=ca HTTP/1.1" 200 4185 "http://www.novalid.site/govern/organizacion.do?coduo=6&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
57
10.215.119.76 - - [01/Aug/2012:08:17:42 +0200] "GET /govern/archivo.do?id=1202529 HTTP/1.1" 200 23171 "http://www.novalid.site/govern/organigrama/area.do?coduo=994&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
58
110.215.13.168 - - [01/Aug/2012:08:17:42 +0200] "GET /govern/archivo.do?id=182101 HTTP/1.1" 200 24365 "http://www.novalid.site/govern/organigrama/area.do?coduo=994&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
59
10.215.119.76 - - [01/Aug/2012:08:17:44 +0200] "GET /govern/estadistica?estua=994&tipus=F&codi=32429&url=http%3A%2F%2Fwww.ibestat.cat%2Fibestat%2Fpage%3Flang%3Dca&lang=ca HTTP/1.1" 302 - "http://www.novalid.site/govern/organigrama/area.do?coduo=994&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
60
110.215.13.168 - - [01/Aug/2012:08:18:09 +0200] "GET /sacmicrofront/home.do?idsite=3245&lang=CA HTTP/1.1" 302 20 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
61
110.215.13.168 - - [01/Aug/2012:08:18:10 +0200] "GET /sacmicrofront/contenido.do;jsessionid=065848302950D6109054BA91A3D53C6A?idsite=3245&cont=49440&lang=ca&campa=yes HTTP/1.1" 200 2803 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
62
10.215.119.76 - - [01/Aug/2012:08:18:10 +0200] "GET /sacmicrofront/v1/css/estilos01_blau.css HTTP/1.1" 200 14917 "http://www.novalid.site/sacmicrofront/contenido.do;jsessionid=065848302950D6109054BA91A3D53C6A?idsite=3245&cont=49440&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
63
10.215.119.76 - - [01/Aug/2012:08:18:10 +0200] "GET /sacmicrofront/v1/css/estils_print.css HTTP/1.1" 404 415 "http://www.novalid.site/sacmicrofront/contenido.do;jsessionid=065848302950D6109054BA91A3D53C6A?idsite=3245&cont=49440&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
64
80.91.80.52 - - [01/Aug/2012:08:18:10 +0200] "GET /sacmicrofront/v1/js/globales.js HTTP/1.1" 200 3834 "http://www.novalid.site/sacmicrofront/contenido.do;jsessionid=065848302950D6109054BA91A3D53C6A?idsite=3245&cont=49440&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
65
80.91.80.52 - - [01/Aug/2012:08:18:10 +0200] "GET /sacmicrofront/v1/imgs/bkg_site.png HTTP/1.1" 200 319 "http://www.novalid.site/sacmicrofront/contenido.do;jsessionid=065848302950D6109054BA91A3D53C6A?idsite=3245&cont=49440&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
66
10.215.119.76 - - [01/Aug/2012:08:19:26 +0200] "GET /sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=43824 HTTP/1.1" 200 2258 "http://www.novalid.site/sacmicrofront/contenido.do;jsessionid=065848302950D6109054BA91A3D53C6A?idsite=3245&cont=49440&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
67
179.109.214.208 - - [01/Aug/2012:08:19:26 +0200] "GET /sacmicrofront/v1/css/estils_print.css HTTP/1.1" 404 415 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=43824" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
68
179.109.214.208 - - [01/Aug/2012:08:19:26 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST3245ZI121094&id=121094 HTTP/1.1" 200 619683 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=43824" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
69
110.215.13.168 - - [01/Aug/2012:08:19:32 +0200] "GET /sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=49398 HTTP/1.1" 200 2492 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=43824" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
70
110.215.13.168 - - [01/Aug/2012:08:19:32 +0200] "GET /sacmicrofront/v1/css/estils_print.css HTTP/1.1" 404 415 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=49398" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
71
10.215.119.76 - - [01/Aug/2012:08:19:32 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST3245ZI126312&id=126312 HTTP/1.1" 200 11391 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=49398" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
72
10.215.119.76 - - [01/Aug/2012:08:25:48 +0200] "GET /sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=44472 HTTP/1.1" 200 2597 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=49398" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
73
80.91.80.52 - - [01/Aug/2012:08:25:48 +0200] "GET /sacmicrofront/v1/css/estilos01_blau.css HTTP/1.1" 304 - "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=44472" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
74
10.215.119.76 - - [01/Aug/2012:08:25:48 +0200] "GET /sacmicrofront/v1/css/estils_print.css HTTP/1.1" 404 415 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=44472" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
75
10.215.119.76 - - [01/Aug/2012:08:25:48 +0200] "GET /sacmicrofront/v1/js/globales.js HTTP/1.1" 304 - "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=44472" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
76
80.91.80.52 - - [01/Aug/2012:08:25:48 +0200] "GET /sacmicrofront/v1/imgs/listados/menu_off.gif HTTP/1.1" 304 - "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=44472" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
77
10.215.119.76 - - [01/Aug/2012:08:25:48 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST3245ZI119413&id=119413 HTTP/1.1" 200 22765 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=44472" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
78
10.215.119.76 - - [01/Aug/2012:08:26:00 +0200] "GET /sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=50407 HTTP/1.1" 200 2064 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=44472" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
79
81.45.52.175 - - [01/Aug/2012:08:26:00 +0200] "GET /sacmicrofront/v1/css/estils_print.css HTTP/1.1" 404 415 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=50407" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
80
81.45.52.175 - - [01/Aug/2012:08:26:11 +0200] "GET /sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=49398 HTTP/1.1" 200 2492 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=50407" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
81
10.215.119.76 - - [01/Aug/2012:08:26:11 +0200] "GET /sacmicrofront/v1/css/estils_print.css HTTP/1.1" 404 415 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=49398" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
82
10.215.119.76 - - [01/Aug/2012:08:26:11 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST3245ZI126312&id=126312 HTTP/1.1" 200 11391 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=49398" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
83
10.211.129.88 - - [01/Aug/2012:08:30:24 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST3245ZI126312&id=126312 HTTP/1.1" 200 11391 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=49398" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
84
110.114.59.90 - - [01/Aug/2012:18:20:03 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST3245ZI126312&id=126312 HTTP/1.1" 200 11391 "http://www.novalid.site/sacmicrofront/contenido.do?idsite=3245&lang=CA&cont=49398" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
(-)bin/testfiles/sample_access_log.jmeter.log (+49 lines)
Line 0 Link Here
1
10.215.119.76 - - [01/Aug/2012:08:16:45 +0200] "GET /boib/index.do?lang=ca HTTP/1.1" 200 5505 "http://www.novalid.site/root/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
2
10.215.119.76 - - [01/Aug/2012:08:16:45 +0200] "GET /root/js/comuns.js HTTP/1.1" 200 5706 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
3
10.215.119.76 - - [01/Aug/2012:08:16:48 +0200] "GET /boib/index.do?lang=ca&p_mes=7&p_any=2012 HTTP/1.1" 200 5513 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
4
10.215.119.76 - - [01/Aug/2012:08:16:59 +0200] "GET /govern/organigrama/area.do?lang=ca&coduo=6 HTTP/1.1" 200 6238 "http://www.novalid.site/boib/index.do?lang=ca&p_mes=7&p_any=2012" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
5
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /root/imgs/destacats/fons.gif HTTP/1.1" 200 1669 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
6
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199225 HTTP/1.1" 200 39467 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
7
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1119561 HTTP/1.1" 200 56251 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
8
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199216 HTTP/1.1" 200 35330 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
9
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199246 HTTP/1.1" 200 39171 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
10
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=953468 HTTP/1.1" 200 39580 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
11
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1201719 HTTP/1.1" 200 52286 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
12
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199286 HTTP/1.1" 200 84304 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
13
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199495 HTTP/1.1" 200 928118 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
14
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1196837 HTTP/1.1" 200 71711 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
15
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1197195 HTTP/1.1" 200 70269 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
16
10.215.119.76 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1194150 HTTP/1.1" 200 85268 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
17
10.215.119.76 - - [01/Aug/2012:08:17:18 +0200] "GET /root/imgs/icones/pdf.gif HTTP/1.1" 200 1023 "http://www.novalid.site/govern/sac/fitxa.do?estua=6&lang=ca&codi=1022317&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
18
10.215.119.76 - - [01/Aug/2012:08:17:25 +0200] "GET /govern/president/index.do?lang=ca HTTP/1.1" 200 3891 "http://www.novalid.site/govern/sac/fitxa.do?estua=6&lang=ca&codi=1022317&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
19
10.215.119.76 - - [01/Aug/2012:08:17:25 +0200] "GET /fitxer/get?codi=873565 HTTP/1.1" 200 37961 "http://www.novalid.site/govern/president/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
20
10.215.119.76 - - [01/Aug/2012:08:17:28 +0200] "GET /govern/index.do?lang=ca HTTP/1.1" 200 3660 "http://www.novalid.site/govern/president/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
21
10.215.119.76 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=874246 HTTP/1.1" 200 27724 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
22
10.215.119.76 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1119561 HTTP/1.1" 200 56251 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
23
10.215.119.76 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1090299 HTTP/1.1" 200 65356 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
24
10.215.119.76 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1199220 HTTP/1.1" 200 36400 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
25
10.215.119.76 - - [01/Aug/2012:08:17:32 +0200] "GET /govern/organizacion.do?coduo=6&lang=ca HTTP/1.1" 200 5642 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
26
10.215.119.76 - - [01/Aug/2012:08:17:34 +0200] "GET /govern/archivo.do?id=874246 HTTP/1.1" 200 27724 "http://www.novalid.site/govern/organizacion.do?coduo=6&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
27
10.215.119.76 - - [01/Aug/2012:08:17:42 +0200] "GET /govern/organigrama/area.do?coduo=994&lang=ca HTTP/1.1" 200 4185 "http://www.novalid.site/govern/organizacion.do?coduo=6&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
28
10.215.119.76 - - [01/Aug/2012:08:17:42 +0200] "GET /govern/archivo.do?id=1202529 HTTP/1.1" 200 23171 "http://www.novalid.site/govern/organigrama/area.do?coduo=994&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
29
10.215.119.76 - - [01/Aug/2012:08:17:44 +0200] "GET /govern/estadistica?estua=994&tipus=F&codi=32429&url=http%3A%2F%2Fwww.ibestat.cat%2Fibestat%2Fpage%3Flang%3Dca&lang=ca HTTP/1.1" 302 - "http://www.novalid.site/govern/organigrama/area.do?coduo=994&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
30
188.185.46.145 - - [01/Aug/2012:08:17:02 +0200] "GET /root/imgs/base.gif HTTP/1.1" 200 49 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
31
188.185.46.145 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1193120 HTTP/1.1" 200 73355 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
32
188.185.46.145 - - [01/Aug/2012:08:17:17 +0200] "GET /govern/sac/fitxa.do?estua=6&lang=ca&codi=1022317&coduo=6 HTTP/1.1" 200 3634 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
33
188.185.46.145 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/organigrama/area.do?lang=ca&coduo=6 HTTP/1.1" 200 6238 "http://www.novalid.site/govern/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
34
188.185.46.145 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1199225 HTTP/1.1" 200 39467 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
35
110.215.25.80 - - [01/Aug/2012:08:16:50 +0200] "GET /boib/index.do?lang=ca&p_mes=6&p_any=2012 HTTP/1.1" 200 5697 "http://www.novalid.site/boib/index.do?lang=ca&p_mes=7&p_any=2012" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
36
110.215.25.80 - - [01/Aug/2012:08:16:55 +0200] "GET /boib/index.do?lang=ca&p_mes=7&p_any=2012 HTTP/1.1" 200 5513 "http://www.novalid.site/boib/index.do?lang=ca&p_mes=6&p_any=2012" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
37
110.215.25.80 - - [01/Aug/2012:08:17:02 +0200] "GET /root/js/noticiesNivell3.js HTTP/1.1" 200 3003 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
38
110.215.25.80 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1090299 HTTP/1.1" 200 65356 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
39
80.91.80.52 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=874246 HTTP/1.1" 200 27724 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
40
110.215.13.168 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1199220 HTTP/1.1" 200 36400 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
41
110.215.13.168 - - [01/Aug/2012:08:17:02 +0200] "GET /govern/archivo.do?id=1198774 HTTP/1.1" 200 74102 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
42
110.215.13.168 - - [01/Aug/2012:08:17:16 +0200] "GET /govern/estadistica?estua=6&tipus=F&codi=1071995&url=http%3A%2F%2Fwww.novalid.site%2Fgovern%2Fsac%2Ffitxa.do%3Festua%3D6%26lang%3Dca%26codi%3D1022317%26coduo%3D6&lang=ca HTTP/1.1" 302 - "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
43
110.215.13.168 - - [01/Aug/2012:08:17:18 +0200] "GET /govern/archivo.do?id=1022318 HTTP/1.1" 200 30345 "http://www.novalid.site/govern/sac/fitxa.do?estua=6&lang=ca&codi=1022317&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
44
110.215.13.168 - - [01/Aug/2012:08:17:42 +0200] "GET /govern/archivo.do?id=182101 HTTP/1.1" 200 24365 "http://www.novalid.site/govern/organigrama/area.do?coduo=994&lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
45
81.45.52.175 - - [01/Aug/2012:08:16:45 +0200] "GET /root/imgs/titols/boib.jpg HTTP/1.1" 200 11291 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
46
81.45.52.175 - - [01/Aug/2012:08:16:45 +0200] "GET /root/imgs/icones/cO.gif HTTP/1.1" 200 524 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
47
81.45.52.175 - - [01/Aug/2012:08:16:45 +0200] "GET /root/imgs/icones/cE.gif HTTP/1.1" 200 198 "http://www.novalid.site/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
48
179.109.214.208 - - [01/Aug/2012:08:17:28 +0200] "GET /govern/archivo.do?id=203282 HTTP/1.1" 200 9817 "http://www.novalid.site/govern/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
49
179.109.214.208 - - [01/Aug/2012:08:17:29 +0200] "GET /govern/archivo.do?id=1199216 HTTP/1.1" 200 35330 "http://www.novalid.site/govern/organigrama/area.do?lang=ca&coduo=6" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.novalid.site
(-)bin/testfiles/sample_access_log.dgtic.log (+125 lines)
Line 0 Link Here
1
83.36.51.78 - - [05/Jul/2012:08:00:49 +0200] "GET /boib/index.do?lang=es HTTP/1.1" 200 5544 "http://www.google.es/url?sa=t&rct=j&q=caib%20boib&source=web&cd=1&ved=0CFUQFjAA&url=http%3A%2F%2Fwww.caib.es%2Fboib%2Findex.do%3Flang%3Des&ei=jC31T6-PH8TJ0QXCn-iSBw&usg=AFQjCNHnRbCcm0L__5gT4tQvszdouh1E3g" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
2
83.36.51.78 - - [05/Jul/2012:08:00:49 +0200] "GET /root/css/estils.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
3
83.36.51.78 - - [05/Jul/2012:08:00:49 +0200] "GET /root/js/comuns.js HTTP/1.1" 200 5706 "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
4
83.36.51.78 - - [05/Jul/2012:08:00:49 +0200] "GET /root/css/estils_print.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
5
83.36.51.78 - - [05/Jul/2012:08:00:49 +0200] "GET /root/imgs/titols/boib.jpg HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
6
83.36.51.78 - - [05/Jul/2012:08:00:49 +0200] "GET /root/imgs/icones/cO.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
7
83.36.51.78 - - [05/Jul/2012:08:00:49 +0200] "GET /root/imgs/icones/cE.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
8
83.36.51.78 - - [05/Jul/2012:08:00:51 +0200] "GET /boib/interior.do?lang=es&p_numero=2012095 HTTP/1.1" 200 4835 "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
9
83.36.51.78 - - [05/Jul/2012:08:00:52 +0200] "GET /root/imgs/icones/pdf.gif HTTP/1.1" 200 1023 "http://www.caib.es/boib/interior.do?lang=es&p_numero=2012095" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
10
83.36.51.78 - - [05/Jul/2012:08:01:16 +0200] "GET /root/imgs/destacats/fons.gif HTTP/1.1" 200 1669 "http://www.caib.es/root/css/estils.css" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
11
83.36.51.78 - - [05/Jul/2012:08:01:16 +0200] "GET /favicon.ico HTTP/1.1" 404 34 "-" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
12
83.36.51.78 - - [05/Jul/2012:08:01:16 +0200] "GET /govern/estadistica?estua=1464&tipus=F&codi=419020&url=http%3A%2F%2Fwww.caib.es%2Fsacmicrofront%2Fcontenido.do%3Fmkey%3DM10011509503311893878%26lang%3DCA%26cont%3D24189&lang=ca HTTP/1.1" 302 - "http://www.caib.es/govern/organigrama/area.do?lang=ca&coduo=1464" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
13
83.36.51.78 - - [05/Jul/2012:08:01:16 +0200] "GET /favicon.ico HTTP/1.1" 404 34 "-" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
14
83.36.51.78 - - [05/Jul/2012:08:01:16 +0200] "GET /sacmicrofront/contenido.do?mkey=M10011509503311893878&lang=CA&cont=24189 HTTP/1.1" 200 11858 "http://www.caib.es/govern/organigrama/area.do?lang=ca&coduo=1464" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
15
83.36.51.78 - - [05/Jul/2012:08:01:17 +0200] "GET /sacmicrofront/v4/css/estils_print.css HTTP/1.1" 200 9167 "http://www.caib.es/sacmicrofront/contenido.do?mkey=M10011509503311893878&lang=CA&cont=24189" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
16
83.36.51.78 - - [05/Jul/2012:08:01:17 +0200] "GET /sacmicrofront/v4/js/globales.js HTTP/1.1" 200 4582 "http://www.caib.es/sacmicrofront/contenido.do?mkey=M10011509503311893878&lang=CA&cont=24189" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
17
83.36.51.78 - - [05/Jul/2012:08:01:17 +0200] "GET /sacmicrofront/v4/imgs/cap/logo.gif HTTP/1.1" 200 3045 "http://www.caib.es/sacmicrofront/contenido.do?mkey=M10011509503311893878&lang=CA&cont=24189" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
18
83.36.51.78 - - [05/Jul/2012:08:01:17 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST451ZI65022&id=65022 HTTP/1.1" 200 68261 "http://www.caib.es/sacmicrofront/contenido.do?mkey=M10011509503311893878&lang=CA&cont=24189" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
19
83.36.51.78 - - [05/Jul/2012:08:01:18 +0200] "GET /imgs/marclateral/carpetaon.gif HTTP/1.1" 404 34 "http://www.caib.es/sacmicrofront/archivopub.do?ctrl=MCRST451ZI65022&id=65022" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
20
83.36.51.78 - - [05/Jul/2012:08:01:18 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST452ZI64821&id=64821 HTTP/1.1" 200 123 "http://www.caib.es/sacmicrofront/archivopub.do?ctrl=MCRST451ZI65022&id=65022" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
21
83.36.51.78 - - [05/Jul/2012:08:01:18 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST452ZI64858&id=64858 HTTP/1.1" 200 171 "http://www.caib.es/sacmicrofront/archivopub.do?ctrl=MCRST451ZI65022&id=65022" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
22
83.36.51.78 - - [05/Jul/2012:08:01:18 +0200] "GET /imgs/marclateral/pagina.gif HTTP/1.1" 404 34 "http://www.caib.es/sacmicrofront/archivopub.do?ctrl=MCRST451ZI65022&id=65022" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
23
83.36.51.78 - - [05/Jul/2012:08:03:54 +0200] "GET /govern/sac/fitxa.do?lang=ca&codi=1193557&coduo=6 HTTP/1.1" 200 4912 "http://www.caib.es/root/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
24
83.36.51.78 - - [05/Jul/2012:08:03:55 +0200] "GET /govern/archivo.do?id=1193561 HTTP/1.1" 200 43003 "http://www.caib.es/govern/sac/fitxa.do?lang=ca&codi=1193557&coduo=6" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C)" www.caib.es
25
83.36.51.78 - - [05/Jul/2012:08:08:17 +0200] "GET /govern/organigrama/arearss.do?coduo=8&lang=ca&tipo=rss_2.0 HTTP/1.1" 200 4066 "-" "Feedreader 3.14 (Powered by Newsbrain)" www.caib.es
26
83.36.51.78 - - [05/Jul/2012:08:12:36 +0200] "GET /boib/index.do?lang=ca HTTP/1.1" 200 5495 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
27
83.36.51.78 - - [05/Jul/2012:08:12:36 +0200] "GET /root/css/estils.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
28
83.36.51.78 - - [05/Jul/2012:08:12:36 +0200] "GET /root/css/estils_print.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
29
83.36.51.78 - - [05/Jul/2012:08:12:36 +0200] "GET /root/js/comuns.js HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
30
83.36.51.78 - - [05/Jul/2012:08:13:02 +0200] "GET /boib/visor.do?lang=es&mode=view&p_numero=2007169&p_inipag=148&p_finpag=153 HTTP/1.1" 302 20 "http://www.google.es/url?sa=t&rct=j&q=nadia%20llabres%20ribes&source=web&cd=1&ved=0CFEQFjAA&url=http%3A%2F%2Fwww.caib.es%2Fboib%2Fvisor.do%3Flang%3Des%26mode%3Dview%26p_numero%3D2007169%26p_inipag%3D148%26p_finpag%3D153&ei=WjD1T-j8GcazhAeir63bBg&usg=AFQjCNHuPJMdTzv1Gv-jocCTI6b2RG62IQ" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB7.3; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C)" www.caib.es
31
83.36.51.78 - - [05/Jul/2012:08:14:34 +0200] "GET /boib/indexrss.do?p_any=2011&lang=ca&tipo=rss_2.0 HTTP/1.1" 200 319 "-" "Feedreader 3.14 (Powered by Newsbrain)" www.caib.es
32
83.36.51.78 - - [05/Jul/2012:08:15:20 +0200] "GET /govern/tramitesrss.do?coduo=2&lang=ca&tipo=rss_2.0 HTTP/1.1" 200 309 "-" "Feedreader 3.14 (Powered by Newsbrain)" www.caib.es
33
83.36.51.78 - - [05/Jul/2012:08:16:25 +0200] "GET /boib/visor.do?lang=ca&mode=view&p_numero=2008089&p_inipag=33&p_finpag=41 HTTP/1.1" 302 20 "http://www.google.es/url?sa=t&rct=j&q=nadia%20llabres%20ribes&source=web&cd=2&ved=0CFMQFjAB&url=http%3A%2F%2Fwww.caib.es%2Fboib%2Fvisor.do%3Flang%3Dca%26mode%3Dview%26p_numero%3D2008089%26p_inipag%3D33%26p_finpag%3D41&ei=ijD1T9LgF4SYhQfzgpXdBg&usg=AFQjCNFmhpbuTK6AJgnbZ4udjMdJsZ4YGw" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB7.3; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C)" www.caib.es
34
83.36.51.78 - - [05/Jul/2012:08:20:37 +0200] "GET /boib/cercaruarss.do?conse=185&nombre=Conselleria%20d%27Innovaci%F3,%20Interior%20i%20Just%EDcia&lang=ca&tipo=rss_2.0 HTTP/1.1" 200 341 "-" "Feedreader 3.14 (Powered by Newsbrain)" www.caib.es
35
83.36.51.78 - - [05/Jul/2012:08:22:17 +0200] "GET /govern/archivo.do?id=971817 HTTP/1.1" 200 98811 "http://www.google.es/url?sa=t&rct=j&q=sol%C2%B7licitud%20expedici%C3%B3%20t%C3%ADtol%20targeta%20esbarjo&source=web&cd=2&ved=0CFkQFjAB&url=http%3A%2F%2Fwww.caib.es%2Fgovern%2Farchivo.do%3Fid%3D971817&ei=gTL1T4qTB4OWhQf70ODhBg&usg=AFQjCNG-i7reJSnoQswLNr35qrT1XkwBsw&cad=rja" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
36
83.36.51.78 - - [05/Jul/2012:08:22:17 +0200] "GET /favicon.ico HTTP/1.1" 404 34 "-" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
37
83.36.51.78 - - [05/Jul/2012:08:22:17 +0200] "GET /favicon.ico HTTP/1.1" 404 34 "-" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
38
83.36.51.78 - - [05/Jul/2012:08:24:33 +0200] "GET /root/css/estils_print.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
39
83.36.51.78 - - [05/Jul/2012:08:24:33 +0200] "GET /root/js/comuns.js HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
40
83.36.51.78 - - [05/Jul/2012:08:24:36 +0200] "GET /root/imgs/cap/logo.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
41
83.36.51.78 - - [05/Jul/2012:08:24:36 +0200] "GET /root/imgs/botons/rss_ico.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
42
83.36.51.78 - - [05/Jul/2012:08:25:32 +0200] "GET /govern/estadistica?tipus=N&codi=2094&mode=view&p_numero=1998021&p_inipag=2025&p_finpag=0&lang=es&url=0 HTTP/1.1" 302 - "http://www.caib.es/govern/sac/visor_proc.do?codi=3000&lang=es" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
43
83.36.51.78 - - [05/Jul/2012:08:25:33 +0200] "GET /boib/visor.do?lang=ca&mode=view&p_numero=1998021&p_inipag=2025&p_finpag=0 HTTP/1.1" 302 - "http://www.caib.es/govern/sac/visor_proc.do?codi=3000&lang=es" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
44
83.36.51.78 - - [05/Jul/2012:08:25:33 +0200] "GET /boib/index.dofavicon.ico HTTP/1.1" 404 1027 "-" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
45
83.36.51.78 - - [05/Jul/2012:08:28:49 +0200] "GET /boib/index.do?lang=ca HTTP/1.1" 200 5495 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
46
83.36.51.78 - - [05/Jul/2012:08:28:49 +0200] "GET /root/css/estils.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
47
83.36.51.78 - - [05/Jul/2012:08:28:49 +0200] "GET /root/js/comuns.js HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
48
83.36.51.78 - - [05/Jul/2012:08:28:50 +0200] "GET /root/imgs/cap/logo.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
49
83.36.51.78 - - [05/Jul/2012:08:28:50 +0200] "GET /root/imgs/botons/rss_ico.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
50
83.36.51.78 - - [05/Jul/2012:08:30:52 +0200] "GET /boib/visor.do?lang=es&mode=view&p_numero=2012020&p_inipag=253&p_finpag=371 HTTP/1.1" 302 20 "http://www.caib.es/boib/interior.do?lang=es&p_numero=2012020" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" www.caib.es
51
83.36.51.78 - - [05/Jul/2012:08:31:32 +0200] "GET /root/imgs/botons/rss_ico.gif HTTP/1.1" 304 - "http://www.caib.es/boib/cercar" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
52
83.36.51.78 - - [05/Jul/2012:08:31:50 +0200] "POST /boib/cercar HTTP/1.1" 200 3439 "http://www.caib.es/boib/cercar" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
53
83.36.51.78 - - [05/Jul/2012:08:31:51 +0200] "GET /root/imgs/cap/logo.gif HTTP/1.1" 304 - "http://www.caib.es/boib/cercar" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
54
83.36.51.78 - - [05/Jul/2012:08:32:16 +0200] "GET /boib/interior.do?lang=es&p_numero=2012096 HTTP/1.1" 200 10106 "http://www.caib.es/boib/cercar" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
55
83.36.51.78 - - [05/Jul/2012:08:32:17 +0200] "GET /root/imgs/icones/pdf.gif HTTP/1.1" 304 - "http://www.caib.es/boib/interior.do?lang=es&p_numero=2012096" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
56
83.36.51.78 - - [05/Jul/2012:08:32:36 +0200] "GET /boib/index.do HTTP/1.1" 200 5501 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
57
83.36.51.78 - - [05/Jul/2012:08:32:36 +0200] "GET /root/css/estils.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
58
83.36.51.78 - - [05/Jul/2012:08:32:36 +0200] "GET /root/css/estils_print.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
59
83.36.51.78 - - [05/Jul/2012:08:32:36 +0200] "GET /root/js/comuns.js HTTP/1.1" 304 - "http://www.caib.es/boib/index.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
60
83.36.51.78 - - [05/Jul/2012:08:32:37 +0200] "GET /root/imgs/cap/logo.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
61
83.36.51.78 - - [05/Jul/2012:08:32:37 +0200] "GET /root/imgs/titols/boib.jpg HTTP/1.1" 304 - "http://www.caib.es/boib/index.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
62
83.36.51.78 - - [05/Jul/2012:08:32:37 +0200] "GET /root/imgs/icones/cO.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
63
83.36.51.78 - - [05/Jul/2012:08:32:37 +0200] "GET /root/imgs/icones/cE.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
64
83.36.51.78 - - [05/Jul/2012:08:32:37 +0200] "GET /root/imgs/botons/rss_ico.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
65
83.36.51.78 - - [05/Jul/2012:08:32:37 +0200] "GET /favicon.ico HTTP/1.1" 404 54 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
66
83.36.51.78 - - [05/Jul/2012:08:32:57 +0200] "POST /boib/cercar HTTP/1.1" 200 3467 "http://www.caib.es/boib/cercar" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
67
83.36.51.78 - - [05/Jul/2012:08:32:58 +0200] "GET /boib/interior.do?lang=ca&p_numero=2012096 HTTP/1.1" 200 10429 "http://www.caib.es/boib/index.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
68
83.36.51.78 - - [05/Jul/2012:08:32:59 +0200] "GET /root/imgs/icones/pdf.gif HTTP/1.1" 304 - "http://www.caib.es/boib/interior.do?lang=ca&p_numero=2012096" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
69
83.36.51.78 - - [05/Jul/2012:08:32:59 +0200] "GET /favicon.ico HTTP/1.1" 404 54 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
70
83.36.51.78 - - [05/Jul/2012:08:33:17 +0200] "GET /boib/index.do?lang=es HTTP/1.1" 200 5554 "http://www.caib.es/boib/cercar" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
71
83.36.51.78 - - [05/Jul/2012:08:33:17 +0200] "GET /root/imgs/titols/boib.jpg HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
72
83.36.51.78 - - [05/Jul/2012:08:33:17 +0200] "GET /root/imgs/icones/cO.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
73
83.36.51.78 - - [05/Jul/2012:08:33:17 +0200] "GET /root/imgs/icones/cE.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=es" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
74
83.36.51.78 - - [05/Jul/2012:08:34:10 +0200] "GET /sacmicrofront/noticias.do?idsite=253&tipo=1791 HTTP/1.1" 200 3034 "http://www.caib.es/sacmicrofront/contenido.do?mkey=M0807081137367224693&lang=CA&cont=7491" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11" www.caib.es
75
83.36.51.78 - - [05/Jul/2012:08:34:11 +0200] "GET /sacmicrofront/v4/js/globales.js HTTP/1.1" 304 20 "http://www.caib.es/sacmicrofront/noticias.do?idsite=253&tipo=1791" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11" www.caib.es
76
83.36.51.78 - - [05/Jul/2012:08:34:11 +0200] "GET /sacmicrofront/v4/imgs/cap/logo.gif HTTP/1.1" 200 3050 "http://www.caib.es/sacmicrofront/noticias.do?idsite=253&tipo=1791" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11" www.caib.es
77
83.36.51.78 - - [05/Jul/2012:08:34:11 +0200] "GET /sacmicrofront/imgs/listados/bullet_gris.gif HTTP/1.1" 200 96 "http://www.caib.es/sacmicrofront/noticias.do?idsite=253&tipo=1791" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11" www.caib.es
78
83.36.51.78 - - [05/Jul/2012:08:34:17 +0200] "GET /boib/visor.do?lang=es&mode=view&p_numero=2012094&p_inipag=46&p_finpag=46 HTTP/1.1" 302 20 "http://www.caib.es/boib/interior.do?lang=es&p_numero=2012094" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
79
83.36.51.78 - - [05/Jul/2012:08:35:28 +0200] "GET /boib/visor.do?lang=es&mode=view&p_numero=2012094&p_inipag=46&p_finpag=46 HTTP/1.1" 302 20 "http://www.caib.es/boib/interior.do?lang=es&p_numero=2012094" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.3; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" www.caib.es
80
83.36.51.78 - - [05/Jul/2012:08:36:43 +0200] "GET /boib/visor.do?lang=ca&mode=view&p_numero=2012096&p_inipag=12&p_finpag=17 HTTP/1.1" 302 - "http://www.caib.es/boib/interior.do?lang=ca&p_numero=2012096" "Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
81
83.36.51.78 - - [05/Jul/2012:08:37:57 +0200] "GET /boib/interior.do?lang=ca&p_numero=2012096&p_seccio=Secci%F3+II+-+Consells+Insulars HTTP/1.1" 200 25433 "http://www.caib.es/boib/interior.do?lang=ca&p_numero=2012096" "Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
82
83.36.51.78 - - [05/Jul/2012:08:50:27 +0200] "GET /sacmicrofront/v4/js/globales.js HTTP/1.1" 200 4582 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
83
83.36.51.78 - - [05/Jul/2012:08:50:27 +0200] "GET /sacmicrofront/v4/css/estils_blau.css HTTP/1.1" 200 439 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
84
83.36.51.78 - - [05/Jul/2012:08:50:27 +0200] "GET /sacmicrofront/imgs/listados/bullet_gris.gif HTTP/1.1" 200 85 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
85
83.36.51.78 - - [05/Jul/2012:08:50:27 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST147ZI92839&id=92839 HTTP/1.1" 200 22255 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
86
83.36.51.78 - - [05/Jul/2012:08:54:11 +0200] "GET /boib/index.do?lang=ca HTTP/1.1" 200 5506 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
87
83.36.51.78 - - [05/Jul/2012:08:54:12 +0200] "GET /root/css/estils.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
88
83.36.51.78 - - [05/Jul/2012:08:54:12 +0200] "GET /root/css/estils_print.css HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
89
83.36.51.78 - - [05/Jul/2012:08:54:12 +0200] "GET /root/js/comuns.js HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
90
83.36.51.78 - - [05/Jul/2012:08:54:13 +0200] "GET /root/imgs/cap/logo.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
91
83.36.51.78 - - [05/Jul/2012:08:54:13 +0200] "GET /root/imgs/titols/boib.jpg HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
92
83.36.51.78 - - [05/Jul/2012:08:54:13 +0200] "GET /root/imgs/icones/cO.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
93
83.36.51.78 - - [05/Jul/2012:08:54:13 +0200] "GET /root/imgs/icones/cE.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
94
83.36.51.78 - - [05/Jul/2012:08:54:13 +0200] "GET /root/imgs/botons/rss_ico.gif HTTP/1.1" 304 - "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
95
83.36.51.78 - - [05/Jul/2012:08:54:14 +0200] "GET /boib/interior.do?lang=ca&p_numero=2012096 HTTP/1.1" 200 10429 "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
96
83.36.51.78 - - [05/Jul/2012:08:54:15 +0200] "GET /root/imgs/icones/pdf.gif HTTP/1.1" 304 - "http://www.caib.es/boib/interior.do?lang=ca&p_numero=2012096" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
97
83.36.51.78 - - [05/Jul/2012:08:54:39 +0200] "GET /sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes HTTP/1.1" 200 5090 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
98
83.36.51.78 - - [05/Jul/2012:08:54:40 +0200] "GET /sacmicrofront/home.do?mkey=M165&lang=es HTTP/1.1" 302 - "http://www.caib.es/sacmicrofront/contenido.do?mkey=M165&lang=ES&cont=6018" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
99
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/v4/css/estils.css HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
100
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/v4/css/estils_blau.css HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
101
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/v4/js/globales.js HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
102
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/v4/css/estils_print.css HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
103
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/v4/imgs/cap/logo.gif HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
104
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/imgs/listados/bullet_gris.gif HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
105
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/imgs/archivos_prev/pdf.gif HTTP/1.1" 200 273 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
106
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/contenido.do?idsite=165&cont=3810&lang=es&campa=yes HTTP/1.1" 200 16640 "http://www.caib.es/sacmicrofront/contenido.do?mkey=M165&lang=ES&cont=6018" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
107
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST147ZI92839&id=92839 HTTP/1.1" 200 22255 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
108
83.36.51.78 - - [05/Jul/2012:08:54:41 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST165ZI57790&id=57790 HTTP/1.1" 200 80802 "http://www.caib.es/sacmicrofront/contenido.do?idsite=165&cont=3810&lang=es&campa=yes" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
109
83.36.51.78 - - [05/Jul/2012:08:54:42 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST165ZI35037&id=35037 HTTP/1.1" 200 55101 "http://www.caib.es/sacmicrofront/contenido.do?idsite=165&cont=3810&lang=es&campa=yes" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
110
83.36.51.78 - - [05/Jul/2012:08:58:58 +0200] "GET /sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes HTTP/1.1" 200 5091 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
111
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /boib/visor.do?lang=ca&mode=view&p_numero=2012096&p_inipag=776&p_finpag=780 HTTP/1.1" 302 20 "http://www.caib.es/boib/interior.do?lang=ca&p_numero=2012096&p_seccio=Secci%F3+II+-+Consells+Insulars" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" www.caib.es
112
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/v4/css/estils.css HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
113
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/v4/css/estils_blau.css HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
114
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/v4/css/estils_print.css HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
115
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/v4/js/globales.js HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
116
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/v4/imgs/cap/logo.gif HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
117
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/v4/imgs/marclateral/pagina.gif HTTP/1.1" 200 47 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
118
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/v4/imgs/marclateral/carpetaon.gif HTTP/1.1" 200 48 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
119
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/imgs/listados/bullet_gris.gif HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
120
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/imgs/archivos_prev/pdf.gif HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
121
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST147ZI92839&id=92839 HTTP/1.1" 200 22255 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
122
83.36.51.78 - - [05/Jul/2012:08:59:00 +0200] "GET /sacmicrofront/archivopub.do?ctrl=MCRST147ZI118537&id=118537 HTTP/1.1" 200 1260 "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
123
83.36.51.78 - - [05/Jul/2012:08:59:00 +0200] "GET /sacmicrofront/v4/imgs/marclateral/carpeta.gif HTTP/1.1" 304 - "http://www.caib.es/sacmicrofront/contenido.do?idsite=147&cont=29650&lang=ca&campa=yes" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
124
83.36.51.78 - - [05/Jul/2012:08:59:00 +0200] "GET /favicon.ico HTTP/1.1" 404 54 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)" www.caib.es
125
83.36.51.78 - - [05/Jul/2012:08:58:59 +0200] "GET /boib/interior.do?lang=ca&p_numero=2012096 HTTP/1.1" 200 108199 "http://www.caib.es/boib/index.do?lang=ca" "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1" www.caib.es
(-)build.xml (-1 / +1 lines)
Lines 995-1001 Link Here
995
      <zipfileset file="${resources.meta-inf}/default.license"
995
      <zipfileset file="${resources.meta-inf}/default.license"
996
        fullpath="META-INF/LICENSE" />
996
        fullpath="META-INF/LICENSE" />
997
      <fileset dir="${build.http}" includes="**/*.class"/>
997
      <fileset dir="${build.http}" includes="**/*.class"/>
998
      <fileset dir="${src.http}" includes="**/*.properties" />
998
      <fileset dir="${src.http}" includes="**/*.properties **/template*" />
999
    </jar>
999
    </jar>
1000
1000
1001
    <!-- ftp -->
1001
    <!-- ftp -->

Return to bug 53748