Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://188006]
help
Chatterbox?
[Corion]: Ah, you are not on Windows, so disregard my opinion.
[vedagiri89]: in centos, how to fix this.
[choroba]: You have to find out why it happened. Was there an OS update?
[vedagiri89]: that is what i can't getting solution
[vedagiri89]: recently purchased centos server and doing migration of app
[choroba]: did you copy any dependencies?
[choroba]: all XS code needs to be recompiled

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (6)
As of 2018-06-19 11:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?



    Results (113 votes). Check out past polls.

    Notices?