Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: combine logentries with Log::log4perl

by CountZero (Bishop)
on Sep 04, 2015 at 08:21 UTC ( #1140970=note: print w/replies, xml ) Need Help??


in reply to combine logentries with Log::log4perl

Certainly not directly answering your question, but I always wondered why most logging systems employ the rather primitive practice of appending a line to a text file, rather than writing the info to a database file which then could be read, aggregated, compared, selected, extracted, etc. in many different forms with some simple and standard SQL.

Somewhat more useful for your question: I think it is a bad idea to aggregate or combine log entries at the "logging" stage already. Perhaps you don't need now to know when and where something happened. But are you certain this information may not be needed next week/month/year by you or a colleague? "Knowledge is Power" (guard it well)! Far better -IMHO- to collect as much info as possible and then extract and rearrange into a report as per your needs at that moment.

CountZero

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

My blog: Imperial Deltronics
  • Comment on Re: combine logentries with Log::log4perl

Replies are listed 'Best First'.
Re^2: combine logentries with Log::log4perl
by RonW (Parson) on Sep 04, 2015 at 16:09 UTC
    but I always wondered why most logging systems employ the rather primitive practice of appending a line to a text file, rather than writing the info to a database

    Reliability. Appending is probably the safest way to write to a file. In fact, some file systems have a journaling feature - when enabled, block writes are first appended to an on-disk journal, then are written to their actual destination in the disk. Block write status is tracked in memory and fully written blocks are "shift"-ed off the head of the journal whenever the block at the head is fully written.

    Also, having log files being (somewhat) human readable means fewer specialized tools are needed to analyze the logs when something does go very wrong.

      I think appending and even general writing to a database is quite reliable as well. The changes made to the databse files on disk probably go through the same or similar journallng routines as any other disk write.

      Personally I think this is just tradition nobody cared enough about to change yet.

      Actually, this may be one place where Windows is actually more modern than Linux c.s. Windows has a central repository where all kinds of system messages, erors, warnings, ... are kept, not only OS messages, but apps can write to that repository too and there is a simple admin tool ("Event viewer") that allows easy access to this information.

      CountZero

      A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

      My blog: Imperial Deltronics
        Windows has a central repository where all kinds of system messages, erors, warnings, ... are kept, not only OS messages, but apps can write to that repository too

        Like syslogd ?

        Careful what you wish for. This MSWin feature sounds an awful lot like journald which itself is one of the very worst parts of systemd (and there's a lot of competition for that particular accolade).

        Give me a good, honest logfile in plain text any day of the week.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (8)
As of 2019-10-22 09:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?