Esteban,

> On 29 Jun 2015, at 21:40, Esteban A. Maringolo <emaring...@gmail.com> wrote:
> 
> Hello everyone,
> 
> I want to record everything that goes in or out from our REST API servers, 
> maybe including HTTP payload (JSON mostly).
> 
> ZnLogEvent seems to have the basic building blocks for logging, but I want to 
> know if there is 
> a package/project that already provides file logging, so I can not only have 
> the logs, but also if the file format is compatible with other http logs I 
> can run traditional web log tools on them, like Webalizer or AWStats.
> 
> Thank you!
> 
> Esteban A. Maringolo

I committed the following:

===
Name: Zinc-HTTP-SvenVanCaekenberghe.432
Author: SvenVanCaekenberghe
Time: 1 July 2015, 4:50:46.339985 pm
UUID: 56da27df-1641-4b62-ba6d-34345f31a1af
Ancestors: Zinc-HTTP-SvenVanCaekenberghe.431

Added ZnCommonLogFormat, an object that formats ZnServerTransactionEvent log 
objects using the Apache Common Log Format (Combined)
===

From the class comment:

===
I am ZnCommonLogFormat, I can output ZnServerTransactionEvent objects using 
Apache Common Log Format (CLF).

https://en.wikipedia.org/wiki/Common_Log_Format
https://httpd.apache.org/docs/trunk/logs.html#common

| formatter |
formatter := ZnCommonLogFormat new.
ZnLogEvent announcer 
  when: ZnServerTransactionEvent 
  do: [ :event | 
    formatter format: event on: Transcript.
    Transcript cr; endEntry ].
===

Which will give the following output:

===
127.0.0.1 - - [01/Jul/2015:16:35:36 +02:00] "GET /random HTTP/1.1" 200 64 
"http://localhost:1701/help"; "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) 
AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12"
127.0.0.1 - - [01/Jul/2015:16:35:37 +02:00] "GET /random HTTP/1.1" 200 64 
"http://localhost:1701/help"; "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) 
AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12"
127.0.0.1 - - [01/Jul/2015:16:36:20 +02:00] "GET / HTTP/1.1" 200 977 "-" 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, 
like Gecko) Version/8.0.7 Safari/600.7.12"
127.0.0.1 - - [01/Jul/2015:16:36:21 +02:00] "GET /echo HTTP/1.1" 200 674 "-" 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, 
like Gecko) Version/8.0.7 Safari/600.7.12"
127.0.0.1 - - [01/Jul/2015:16:36:25 +02:00] "GET /echo?foo=1 HTTP/1.1" 200 680 
"-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 
(KHTML, like Gecko) Version/8.0.7 Safari/600.7.12"
127.0.0.1 - - [01/Jul/2015:16:36:53 +02:00] "GET /echo?foo=12 HTTP/1.1" 200 681 
"-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 
(KHTML, like Gecko) Version/8.0.7 Safari/600.7.12"
127.0.0.1 - - [01/Jul/2015:16:39:13 +02:00] "GET /random HTTP/1.1" 200 64 "-" 
"curl/7.37.1"
127.0.0.1 - sven [01/Jul/2015:16:40:43 +02:00] "GET /random HTTP/1.1" 200 64 
"-" "curl/7.37.1"
127.0.0.1 - - [01/Jul/2015:16:42:18 +02:00] "GET /bytes/256 HTTP/1.1" 200 256 
"-" "Zinc HTTP Components 1.0"
===

This still needs battle testing and feedback.

HTH,

Sven


Reply via email to