Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^16: Question about the most efficient way to read Apache log files without All-In-One Modules from CPAN (personal learning exercise)

by wrog (Friar)
on Jun 19, 2015 at 17:06 UTC ( #1131164=note: print w/replies, xml ) Need Help??


in reply to Re^15: Question about the most efficient way to read Apache log files without All-In-One Modules from CPAN (personal learning exercise)
in thread Question about the most efficient way to read Apache log files without All-In-One Modules from CPAN (personal learning exercise)

wait, I thought you were bored and going away. what happened?
3. So, I reminded you: "He did ask for a learning exercise; not a pre-solved solution.".

At no point did I provide a pre-solved solution, I simply indicated directions to pursue, just like you did. Except I provided 2 different ones that were more likely to be useful. Sorry about that; I'll try to do worse next time.

4. So you come back with this guess: "(or if Apache really does go to some pains to make sure spaces never show up in the various log fields -- say by always representing them as + or %20 -- then yay, but I'm not sure this is actually true.)".
Which is demonstrably wrong!

Which inexplicably links to the HTTP/URI specs, which as I have repeatedly pointed out has nothing to do with this. (I'm beginning to wonder if I know more about the innards of Apache than you do)

5. You retort with: "which says nothing about logname and user,".

Look at the regex above! Wrong again.

Right. The regexp which doesn't always get used (which you'd know if you'd bothered to read the code at least as carefully as I did, which I'll admit wasn't all that carefully, but sufficed...).

6. And "nor does it guarantee that the HTTP command field always consists of exactly 3 space-separated components ".
Also wrong!
Oh look, another link to the HTTP spec. Meanwhile, I provide not one but TWO sources of counterexamples (script kiddies, and 408 lines, neither of which are particularly rare) that could lead to the HTTP command in the log file not consisting of 3 space-separated components -- the sorts of things that would screw up a split solution ... that the OP would most likely want to know about (and are hence worth mentioning)
7. So then you throw "10.54.33.35 - - 18/Jun/2015:09:05:55 -0700 "-" 408 0" into the mix.
And, as I've shown above, that would (without special handling) break most pre-solved solutions;
Yet another statement pulled out of your ass that turns out not to be true which then has to be corrected (again Apache::Log::Parser works just fine, thank you very much)
which I'll remind you: the OP explicitly didn't want.
Never mind that you are the only one in this thread who's been bringing up pre-solved solutions.

So who exactly is wasting everybody's time again?

This is exactly the sort of behavior that you decry in others. Heaven forbid anybody should call you out on your own bullshit.

  • Comment on Re^16: Question about the most efficient way to read Apache log files without All-In-One Modules from CPAN (personal learning exercise)

Replies are listed 'Best First'.
Re^17: Question about the most efficient way to read Apache log files without All-In-One Modules from CPAN (personal learning exercise)
by karlgoethebier (Monsignor) on Jun 20, 2015 at 13:46 UTC
    "...Yet another statement pulled out of your ass...your own bullshit..."

    Now pipe down and come back to the basic theme.

    Given this task for learning experience:

    • Parse a Apache Logfile
    • Format is <LogFormat "%h %l %u %t \"%r\" %>s %b" common>
    • Extract the seven fields
    • Don't use a module
    • Special cases don't matter

    Note: Your data must look like this: my $line = qq(127.0.0.1 - - [22/Apr/2015:13:35:04 +1000] "GET /bin/admin.pl HTTP/1.1" 401 509);, as in the example by kcott.

    Inquisitorial question: How would you accomplish this?

    I think the OP would appreciate this very much.

    Karl

    P.S.: Cnagf qbja abj naq fubj gung qnza pbqr!

    «The Crux of the Biscuit is the Apostrophe»

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1131164]
help
Chatterbox?
[Corion]: Discipulus: Ouch ... staff cuts are never good, but having to hunt for work isn't great either, especially with a family...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (7)
As of 2018-05-23 21:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?