Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Defensive Programming and Audit Trails

by cybear (Monk)
on Aug 06, 2002 at 13:01 UTC ( #188006=note: print w/ replies, xml ) Need Help??


in reply to Defensive Programming and Audit Trails

Dispite the barely obfuscated obsenity for a name, FoxtrotUniform
is right on! I have been working in Operations/Support for
seven years, and I have found that the vast majority of programs
out there couldn't log their way out of a saw mill. Think Windoze
"some.dll has caused a fault in module some.dll"... really freeking
helpful! NOT!

A good program should log every pertinant piece of information,
working directories, parameters passed on the command line, start times
end times, files read from/written to, etc. The log should be very
friendly to the eyes, and work well with tools such as grep.
A good log will have, lots of space between log sections, obvious signs of positive or
negative results, meaningful error messages, clearly understandable
tags, etc.

For example, this is the log of an FTP program that I wrote:
(PS -it was decided that end times would not be all that helpful in this case)

Date: Tue Aug 6 04:00:00 Ping test results: Working Using Firewall: xxx.xxxxxxx.com GEIS ID: 12:?????????? +1 File: /opt/somedir/data/xxx/xxx.2002_08_06.04.00.00 Date: Tue Aug 6 04:25:01 Ping test results: Working Using Firewall: xxx.xxxxx.com GEIS ID: ZZ:?????????? -No file to download. Date: Tue Aug 6 04:25:01 Ping test results: Working Using Firewall: xxx.xxxxx.com GEIS ID: ZZ:?????????? -[!!!]Download failed[!!!] check /opt/somedir/detailedLog for details.

In this case, the general log (above) is archived and kept for 120 days,
the detailedLog, FTP Debuging (Level 1) information, is kept in a seperate
file and archived for 30 days. This keeps the general log more "user friendly"
but still captures the truley "nitty-gritty" incase of programming errors.

Scanning through this file for errors is easy, visually the
individual entries are short, time stamped and each major
piece of the processing has an individual line in the report.

Additionally successful downloads are marked with a "+",
No data to download is marked with a "-", and errors are
marked with "!!!". These prepended characters, "+" "-" "!!!",
All work with grep pretty well. After a long weekend, with three
of four days of logs to go through, I'll just grep !!! logfile
to quickly get caught up with my log reading.


Comment on Re: Defensive Programming and Audit Trails
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://188006]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (7)
As of 2014-08-01 07:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (257 votes), past polls