skip to main content

kiesler.at

Random Guide to whatever
updated by rck, 2004-10-10

Another case of trying out the swallow hack 0.2. This time, I'm shuffling some sections around. Enjoy!

0 < n < 100

Im sogenannten NCSA extended/combined log format finden sich folgende Informationen:


  1. %h...Remote host
  2. %l...Remote logname (from identd, if supplied)
  3. %u...Remote user (from auth, may be bogus if returnstatus (%s) is 401)
  4. %t...Time, in common log format time format (standard english format)
  5. %r...First line of request
  6. %>s...Status of the last request (%s would be the original request, which could be "follow" or what ever)
  7. %\{Referer\}i...Inserts the Referer-String from the user's browser (without the backslashes)
  8. %\{User-agent\}i...Inserts the User's Browsername (without the backslashes)

...somit so ziemlich alles, was von Interesse sein könnte.


Folgender Eintrag in die httpd.conf aktiviert dieses Format:

     # CustomLog with format nickname
LogFormat "%h %l %u %t \"%r\" %>s %b \"%\{Referer\}i\" \"%i\{User-agent\}\"" ncsa
CustomLog logs/access_log ncsa

100 < n < 200

1 /*                      scanner.lex
2                         (c) 2004 René C. Kiesler
3 
4                         please visit http://www.kiesler.at/
5                         for further informations & support.
6 */
7 
8                 
9                         #include <math.h>
10 
11                         int num_lines = 1;
12                         int last_open_sighting = -1;
13 
14 
15 KEYWORD                 func|where|end|if|then|else|not|hd|tl|islist|and
16 OPERATOR                \:|\;|\,|\=|\-|\+|\*|\<|\(|\)
17 LEXEM                   {KEYWORD}|{OPERATOR}
18 
19 HEXZAHL                 0x[0-9a-fA-F]+
20 DECZAHL                 [0-9]+
21 
22 IDENTIFIER              [a-zA-Z][0-9a-zA-Z]*
23 
24 WHITESPACE              [ \t]+
25 COMMENT_START           \(\*
26 COMMENT_END             \*\)
27 
28 NEWLINE                 \n
29 
30 ANYCHAR                 .
31 
32 
33 %x COMMENT
34 %%
35 
36 
37 {COMMENT_START}         {       BEGIN(COMMENT);
38                                 last_open_sighting = num_lines;
39                         }
40 <COMMENT>{COMMENT_END}  BEGIN(INITIAL);
41 <COMMENT><<EOF>>        {       fprintf(stderr,
42                                         "unmatched opening comment in line %d, %s\n",
43                                         last_open_sighting, "eof reached.");
44                                 exit(1);
45                         }
46 <COMMENT>\n             num_lines++;
47 <COMMENT>.              /* alles im Kommentar ignorieren */
48 
49 {WHITESPACE}            /* Whitespace, wird ignoriert */
50 {NEWLINE}               num_lines++;
51 
52 {LEXEM}                 printf("%s\n", yytext);
53 
54 {DECZAHL}               printf("num 0x%x\n", atoi(yytext));
55 {HEXZAHL}               printf("num 0x%x\n", strtol(yytext, 0, 16));
56 
57 {IDENTIFIER}            printf("ident %s\n", yytext);
58 
59 {ANYCHAR}               {       fprintf(stderr,
60                                         "unknown character '%s' in line %d.\n",
61                                         yytext, num_lines);
62                                 exit(1);
63                         }
64 
65 %%
66 
67 
68                         main(int argc, char **argv) {
69                                 yyin=argc>1 ? fopen(argv[1], "r") : stdin;
70                                 yylex();
71                                 exit(0);
72                         }
73 

200 < n < 300

126 Wir legen ein DecimalFormat Objekt an, welches uns die ganze Arbeit abnimmt. Es möge sich schon mal mental darauf einstellen, dass wir Zahlen gerne mit drei Nachkommastellen hätten und diese mit einem . (nicht etwa ,) vom Rest getrennt sind.

127 Wir legen auch noch ein paar Symbole für die Zahlenausgabe an. Zuständig ist dafür DecimalFormatSymbols, welches uns so Dinge wie Tausendertrennung, Nachkommatrennung, zur Verfügung stehende Ziffern, etc. zur Verfügung stellt.

128 hier geben wir nochmal an, dass wir gerne ein . als Nachkommatrennung hätten. Wir sind da stur.

129 Die schönsten DecimalFormatSymbols nützen nichts, wenn unser DecimalFormat nichts davon weis.

130 Wir liefern die korrekt formatierte Version unserer Zahl zurück.

here you can see some nonsense article. in case it makes sense, it's all fault of Swallow Hack 0.5 for Article Manager!



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004

What's Related

Article Manager

Hacks

Latest Updates

AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki

Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread

Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread

Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread


Zu den KO2100 Foren