Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

(0) In python, Your manager wants you to write a script that looks for all the error codes in a logfile and then writes those

(0)

In python,

Your manager wants you to write a script that looks for all the error codes in a logfile and then writes those errors out to individual error files so that they can be handled by the appropriate IT support team.

You will use be using the text file logfile.txt (see attached). This file is a server log file that contains the recorded events taking place in a web server. The content of the file is in a special format known as common log format. According to Wikipedia:

"The Common Log Format is a standardized text file format used by web servers when generating server log files."

Here's an example of a log record:

'pd9049dac.dip.t-dialin.net - - [01/May/2001:01:51:25 -0700] "GET /accesswatch/accesswatch-1.33/ HTTP/1.0" 200 1004'

A "-" in a field indicates missing data.

pd9049dac.dip.t-dialin.net is the IP address of the client (remote host) which made the request to the server.

[01/May/2001:01:51:25 -0700] is the date, time, and time zone that the request was received, by default in strftime format%d/%b/%Y:%H:%M:%S %z.

"GET /accesswatch/accesswatch-1.33/ HTTP/1.0" is the request line from the client.

The method GET, /accesswatch/accesswatch-1.33/ is the resource requested, and HTTP/1.0 is the HTTP protocol.

200 is the HTTP status code returned to the client.

2xx is a successful response

3xx a redirection

4xx a client error, and

5xx a server error

1004 is the size of the object returned to the client, measured in bytes.

Because client errors and server errors are managed by different teams, you are charged with finding all the records with HTTP status code errors of 4xx or 5xx and write the status code and the URL portion of the request to the appropriate error file to make it easier for each team to investigate the files that are causing the errors. Client error information is written a file called Client_Errors.txt and server error information is written to a file called Server_Errors.txt.

Example:

The data within the Client_Errors.txt file would look something like this:

Status Code: 400 File: x Status Code: 403 File: /testing/book1.html Status Code: 404 File: /robots.txt Status Code: 404 File: /testing/www.approximity.com Status Code: 404 File: /testing/www.xprogramming.org

Lastly, to best aid the support teams, you will make sure that your files do not contain any duplicate records. (Hint: you may want to look ahead at how to use sets).

file to use

logfile.txt:

pd9049dac.dip.t-dialin.net - - [01/May/2001:01:51:25 -0700] "GET /accesswatch/accesswatch-1.33/ HTTP/1.0" 200 1004 pd9049dac.dip.t-dialin.net - - [01/May/2001:01:51:26 -0700] "GET /accesswatch/accesswatch-1.33/img/allifou.jpg HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:01:51:26 -0700] "GET /sa.inside.jpg HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:19 -0700] "GET /accesswatch/accesswatch-1.33/ HTTP/1.0" 200 7791 pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/allifou.jpg HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/redblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/bluevert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/clearvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/hourbar.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/yellvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/redvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/orgvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:20 -0700] "GET /accesswatch/accesswatch-1.33/img/pinkvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:21 -0700] "GET /accesswatch/accesswatch-1.33/img/purpvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:21 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:21 -0700] "GET /accesswatch/accesswatch-1.33/img/ltgnvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:21 -0700] "GET /accesswatch/accesswatch-1.33/img/cyanvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:21 -0700] "GET /accesswatch/accesswatch-1.33/img/grnvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:21 -0700] "GET /sa.inside.jpg HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:21 -0700] "GET /accesswatch/accesswatch-1.33/img/brwnvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:20:29 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:16 -0700] "GET /accesswatch/accesswatch-1.33/ HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:19 -0700] "GET /accesswatch/accesswatch-1.33/img/allifou.jpg HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/purpvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/redblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/clearvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/hourbar.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/redvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/cyanvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/bluevert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/orgvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/yellvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /sa.inside.jpg HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:20 -0700] "GET /accesswatch/accesswatch-1.33/img/brwnvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:21 -0700] "GET /accesswatch/accesswatch-1.33/img/grnvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:21 -0700] "GET /accesswatch/accesswatch-1.33/img/ltgnvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:02:37:21 -0700] "GET /accesswatch/accesswatch-1.33/img/pinkvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:09 -0700] "GET /accesswatch/accesswatch-1.33/ HTTP/1.0" 200 7792 pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:10 -0700] "GET /accesswatch/accesswatch-1.33/img/allifou.jpg HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:10 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:10 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:10 -0700] "GET /accesswatch/accesswatch-1.33/img/redvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:10 -0700] "GET /accesswatch/accesswatch-1.33/img/redblock.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/clearvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/redvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/grnvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/hourbar.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/purpvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/cyanvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/bluevert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/ltgnvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/yellvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/pinkvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/orgvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/brwnvert.gif HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /sa.inside.jpg HTTP/1.0" 304 - pd9049dac.dip.t-dialin.net - - [01/May/2001:08:15:11 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:45:39 -0700] "GET /public/buttons.html HTTP/1.0" 200 1297 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:45:39 -0700] "GET /apx.gif HTTP/1.0" 200 8798 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:45:39 -0700] "GET /public/logo.html HTTP/1.0" 200 311 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:45:39 -0700] "GET /public/home.html HTTP/1.0" 200 1958 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:45:43 -0700] "GET / HTTP/1.0" 200 584 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:45:43 -0700] "GET /public/images/relais2.jpg HTTP/1.0" 200 23463 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:46:24 -0700] "GET /public/investors.html HTTP/1.0" 200 1522 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:46:51 -0700] "GET /public/contactus.html HTTP/1.0" 200 1427 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:47:25 -0700] "GET /public/consulting.html HTTP/1.0" 200 3886 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:47:47 -0700] "GET /public/applications.html HTTP/1.0" 200 1869 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:47:56 -0700] "GET /public/technology.html HTTP/1.0" 200 1751 sun01pt-209d.stat.ncsu.edu - - [01/May/2001:09:47:56 -0700] "GET /public/images/technology.gif HTTP/1.0" 200 11846 pd9049e7e.dip.t-dialin.net - - [01/May/2001:11:45:33 -0700] "GET /accesswatch/accesswatch-1.33/ HTTP/1.0" 200 10177 pd9049e7e.dip.t-dialin.net - - [01/May/2001:11:45:36 -0700] "GET /accesswatch/accesswatch-1.33/img/ltgnvert.gif HTTP/1.0" 304 - pd9049e7e.dip.t-dialin.net - - [01/May/2001:11:45:36 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049e7e.dip.t-dialin.net - - [01/May/2001:11:45:36 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049e7e.dip.t-dialin.net - - [01/May/2001:11:45:39 -0700] "GET /accesswatch/accesswatch-1.33/img/blueblock.gif HTTP/1.0" 304 - pd9049e7e.dip.t-dialin.net - - [01/May/2001:11:45:48 -0700] "GET /accesswatch/accesswatch-1.33/details.html HTTP/1.0" 200 1590 pd9049e7e.dip.t-dialin.net - - [02/May/2001:02:48:37 -0700] "GET / HTTP/1.0" 200 584 pd9049e7e.dip.t-dialin.net - - [02/May/2001:02:48:38 -0700] "GET /public/buttons.html HTTP/1.0" 200 1297 pd9049e7e.dip.t-dialin.net - - [02/May/2001:02:48:39 -0700] "GET /public/logo.html HTTP/1.0" 200 311 pd9049e7e.dip.t-dialin.net - - [02/May/2001:02:48:39 -0700] "GET /public/home.html HTTP/1.0" 200 1958 pd9049e7e.dip.t-dialin.net - - [02/May/2001:02:48:39 -0700] "GET /public/images/relais2.jpg HTTP/1.0" 200 23463 pd9049e7e.dip.t-dialin.net - - [02/May/2001:02:48:39 -0700] "GET /apx.gif HTTP/1.0" 200 8798 pd9049e7e.dip.t-dialin.net - - [02/May/2001:02:48:41 -0700] "GET /public/consulting.html HTTP/1.0" 200 3886 pd9049e7e.dip.t-dialin.net - - [02/May/2001:03:13:05 -0700] "GET /accesswatch/accesswatch-1.33/ HTTP/1.0" 200 1004 pd9049e7e.dip.t-dialin.net - - [02/May/2001:03:13:06 -0700] "GET /accesswatch/accesswatch-1.33/img/allifou.jpg HTTP/1.0" 304 - pd9049e7e.dip.t-dialin.net - - [02/May/2001:03:13:06 -0700] "GET /sa.inside.jpg HTTP/1.0" 304 - crawl1.googlebot.com - - [02/May/2001:03:39:42 -0700] "GET /robots.txt HTTP/1.0" 404 276 crawl1.googlebot.com - - [02/May/2001:03:39:42 -0700] "GET / HTTP/1.0" 200 584 pd9049e7e.dip.t-dialin.net - - [02/May/2001:04:38:52 -0700] "GET / HTTP/1.0" 304 - pd9049e7e.dip.t-dialin.net - - [02/May/2001:04:38:53 -0700] "GET /public/buttons.html HTTP/1.0" 304 - pd9049e7e.dip.t-dialin.net - - [02/May/2001:04:38:53 -0700] "GET /public/images/relais2.jpg HTTP/1.0" 304 - pd9049e7e.dip.t-dialin.net - - [02/May/2001:04:38:53 -0700] "GET /public/home.html HTTP/1.0" 304 - pd9049e7e.dip.t-dialin.net - -

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Advances In Databases And Information Systems 14th East European Conference Adbis 2010 Novi Sad Serbia September 2010 Proceedings Lncs 6295

Authors: Barbara Catania ,Mirjana Ivanovic ,Bernhard Thalheim

2010th Edition

3642155758, 978-3642155758

More Books

Students also viewed these Databases questions

Question

Describe a persuasive message.

Answered: 1 week ago

Question

Identify and use the five steps for conducting research.

Answered: 1 week ago

Question

List the goals of a persuasive message.

Answered: 1 week ago