移动源IP和用户代理



我有下面的Mojolicus应用程序,它提供特定文件夹中的文件

use Mojolicious::Lite;
use Mojo::Log;
my $app = app;
my $static = $app->static;
push @{$static->paths} => 'c:test';
$app->start

当我运行时:

perl mojo_server.pl daemon -m development

我得到这个:

[2021-05-18 19:46:39.22370] [29388] [info] Listening at "http://*:3000"
Server available at http://127.0.0.1:3000

并且当我从网络浏览器访问文件时;服务器位于http://127.0.0.1:3000"比如源地址和请求的页面以及用户代理。如果可能的话,我如何在调试模式下打开mojolique来显示这些信息?

您可以在Mojolicous:中使用HOOKS中的after_static

use Mojolicious::Lite -signatures;
use Mojo::Log;
my $log = Mojo::Log->new;
hook after_static => sub ($c){
$log->debug('original_remote_address : ' => $c->tx->original_remote_address);
$log->debug('user_agent : ' => $c->tx->req->content->headers->user_agent );
$log->debug('url : ' => $c->tx->req->url->to_abs);
};
app->start;

当生成静态响应时,会触发after_static事件。

更新:如果您需要一个更通用的解决方案,而不是专门针对静态文件,请查看AccessLog插件。

use Mojolicious::Lite -signatures;
use Mojo::Log;
use Mojolicious::Plugin::AccessLog;
my $log = Mojo::Log->new;
plugin 'AccessLog';
app->start;