Y'a t-il des adeptes de split-logfile d'Apache 2 ?

J’aimerai avoir un retour d’expérience sur cet utilitaire qui me rend zinzin.
J’utilise celui-ci dans le contexte d’un mass hosting.

Voila, merci d’avance. :stuck_out_tongue:

Personne ?
Je pose cette question car j’ai un problème au moment du split, il me vire les robots… (cf. Ce topic sur debibox-news.com)

hello,

Apparemment c’est le but de split-logfile de séparer les fichiers, il lit les HEADER et decoupe les logs. Je connais pas cette outil, je pense qu’il doit y avoir moyen de concaténer les logs dans un fichier.

J’espère. :confused:
C’est assez balo quand même.

Voici le contenu du script.

[code]#!/usr/bin/perl

Copyright 2001-2005 The Apache Software Foundation or its licensors, as

applicable.

Licensed under the Apache License, Version 2.0 (the “License”);

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an “AS IS” BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

This script will take a combined Web server access

log file and break its contents into separate files.

It assumes that the first field of each line is the

virtual host identity (put there by “%v”), and that

the logfiles should be named that+".log" in the current

directory.

The combined log file is read from stdin. Records read

will be appended to any existing log files.

%is_open = ();

while ($log_line = ) {
#
# Get the first token from the log record; it’s the
# identity of the virtual host to which the record
# applies.
#
($vhost) = split (/\s/, $log_line);
#
# Normalize the virtual host name to all lowercase.
# If it’s blank, the request was handled by the default
# server, so supply a default name. This shouldn’t
# happen, but caution rocks.
#
$vhost = lc ($vhost) or “access”;
#
# if the vhost contains a “/” or “”, it is illegal so just use
# the default log to avoid any security issues due if it is interprted
# as a directory separator.
if ($vhost =~ m#[/\]#) { $vhost = “access” }
#
# If the log file for this virtual host isn’t opened
# yet, do it now.
#
if (! $is_open{$vhost}) {
open $vhost, ">>${vhost}.log"
or die (“Can’t open ${vhost}.log”);
$is_open{$vhost} = 1;
}
#
# Strip off the first token (which may be null in the
# case of the default server), and write the edited
# record to the current log file.
#
$log_line =~ s/^\S*\s+//;
printf $vhost “%s”, $log_line;
}
exit 0;[/code]
Déjà merci d’avoir répondu. :wink:

hello,

Oui j’avais matter les sources et il fais que lire les HEADERs et les decouper dans des fichiers, tu voudrais faire quoi ?

Je voudrai que les bots qui ont visité un domaine restent dans le log du domaine au moment du split.

hello,

 # Get the first token from the log record; it's the
# identity of the virtual host to which the record
# applies.
#
($vhost) = split (/\s/, $log_line); 

C’est une expression rationnelle, en clairs, le “\s” permet de s’arrêter au première espace rencontrer dans tous le parcours de ton fichier de log, voilà pourquoi il écrit des fichiers ip.log.

Mouarf, compliqué tout ça
Je dois faire quoi exactement ?

hello,

Je pense que tu peux rien faire tant que dans tes logs l’ip sort en premier.

Ben je peux m’arranger pour placer l’host ailleur !
Si je place l’host ailleur, comment dois-je mis prendre pour le split ?

hello,

Je t’es dis un peu plus haut qu’il faut que le nom de domaine soit en premier, ce qu’il y a c’est si ça resout pas le nom de domaine et bien ca sera l’ip qui sortira.

dans ton CustomLog tu met %V au début de la chaine de format, ça ira mieux. Pense a reloader apache2.

A+,

[quote=“ed”]dans ton CustomLog tu met %V au début de la chaine de format, ça ira mieux. Pense a reloader apache2.

A+,[/quote]
C’est déjà fait, j’ai donné le lien de ma conf de log.