J'ai de la difficulté à faire fonctionner les filtres avec HTTP::Proxy et je n'arrive pas à comprendre ce que je devrais ajouter à la fonction logmask()
pour obtenir cette information.Comment obtenir HTTP :: Proxy pour enregistrer les informations de filtre?
J'ai un fichier journal, cette partie est correcte, la journalisation est en cours, mais aucune information sur les filtres, bien qu'ils soient implémentés et (parfois) fonctionnent.
J'ai essayé
logmask(['FILTERS'])
logmask('FILTERS')
logmask(FILTERS)
et aucun de ceux qui travaillent! Qu'est-ce que je rate?
Aussi, qu'est-ce que c'est que les puissances de deux pour le masque? Et les constantes étant exportées par :log
?
Je suis plutôt confus, comme vous pouvez le dire.
EDIT:
en passant par les conseils ci-dessous, j'ai le script suivant:
#!/sw/bin/perl
use strict;
use warnings;
use HTTP::Proxy qw(:log);
use HTTP::Proxy::BodyFilter::tags;
use HTTP::Proxy::BodyFilter::simple;
open(LOG, '>>', "/Users/ambrose/proxy-log.txt") or die "$!";
my $proxy = HTTP::Proxy->new;
$proxy->port(3128);
$proxy->logfh(*LOG);
$proxy->logmask(ALL);
$proxy->push_filter(
mime => 'text/html',
response => HTTP::Proxy::BodyFilter::tags->new(),
response => HTTP::Proxy::BodyFilter::simple->new(
sub { ${ $_[1] } =~ s!(</?)i>!$1b>!ig }
)
);
$proxy->start;
qui ne se connecte pas quoi que ce soit sur les filtres, bien que le filtre est en marche, je peux voir que italiques ont été changés en gras, comme dans l'exemple.
Si je change la ligne:
$proxy->logmask(ALL);
à
$proxy->logmask(FILTERS);
rien ne s'ajouté au fichier journal du tout.