如何控制 Mojolicious Web 服务器的日志记录
How to control logging for Mojolicious web server
我想更改 Mojolicious 网络服务器的默认日志记录级别,但在阅读文档后我不知道该怎么做。我是一个相当新的 Perl 开发人员,因为我必须将 Perl 用于特定的遗留用例——我通常在日常工作中使用 Go、Python、Java。我想有一些“Perl 方式”可以做到这一点,但由于我缺乏经验,我无法理解。
这是一个简单的示例应用程序:
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Mojolicious::Lite -signatures;
get '/ping' => sub ($c) {
$c->render( json => { 'pong' => $c->param('value'), 'number' => 1 } );
};
app->start( 'daemon', '-l', 'http://localhost:8888' );
我 运行 在一个终端中,然后,我从另一个终端到达端点并得到响应:
curl "http://localhost:8888/ping?value=test"
{"number":1,"pong":"test"}
但是,在 Web 服务器终端中,我得到了跟踪级别的日志记录,据我所知这是 Mojolicious 的默认日志记录级别:
[2022-01-21 14:38:04.40413] [1628] [info] Listening at "http://localhost:8888"
Web application available at http://localhost:8888
[2022-01-21 14:38:39.06480] [1628] [trace] [sLAkASlGAvjE] GET "/ping"
[2022-01-21 14:38:39.06516] [1628] [trace] [sLAkASlGAvjE] Routing to a callback
[2022-01-21 14:38:39.06552] [1628] [trace] [sLAkASlGAvjE] 200 OK (0.000718s, 1392.758/s)
我想将日志记录级别退回到 'info'。
您可以这样设置日志级别:
app->log->level('error');
这个例子来自主Mojolicious::Lite documentation in the app
section。这是该文档中 grepping log 的唯一命中。
在您的示例中,您可以在应用程序开始或结束时执行此操作。
# ...
use Mojolicious::Lite -signatures;
app->log->level('info');
get '/ping' => sub ($c) {
$c->render( json => { 'pong' => $c->param('value'), 'number' => 1 } );
};
app->start( 'daemon', '-l', 'http://localhost:8888' );
我想更改 Mojolicious 网络服务器的默认日志记录级别,但在阅读文档后我不知道该怎么做。我是一个相当新的 Perl 开发人员,因为我必须将 Perl 用于特定的遗留用例——我通常在日常工作中使用 Go、Python、Java。我想有一些“Perl 方式”可以做到这一点,但由于我缺乏经验,我无法理解。
这是一个简单的示例应用程序:
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Mojolicious::Lite -signatures;
get '/ping' => sub ($c) {
$c->render( json => { 'pong' => $c->param('value'), 'number' => 1 } );
};
app->start( 'daemon', '-l', 'http://localhost:8888' );
我 运行 在一个终端中,然后,我从另一个终端到达端点并得到响应:
curl "http://localhost:8888/ping?value=test"
{"number":1,"pong":"test"}
但是,在 Web 服务器终端中,我得到了跟踪级别的日志记录,据我所知这是 Mojolicious 的默认日志记录级别:
[2022-01-21 14:38:04.40413] [1628] [info] Listening at "http://localhost:8888"
Web application available at http://localhost:8888
[2022-01-21 14:38:39.06480] [1628] [trace] [sLAkASlGAvjE] GET "/ping"
[2022-01-21 14:38:39.06516] [1628] [trace] [sLAkASlGAvjE] Routing to a callback
[2022-01-21 14:38:39.06552] [1628] [trace] [sLAkASlGAvjE] 200 OK (0.000718s, 1392.758/s)
我想将日志记录级别退回到 'info'。
您可以这样设置日志级别:
app->log->level('error');
这个例子来自主Mojolicious::Lite documentation in the app
section。这是该文档中 grepping log 的唯一命中。
在您的示例中,您可以在应用程序开始或结束时执行此操作。
# ...
use Mojolicious::Lite -signatures;
app->log->level('info');
get '/ping' => sub ($c) {
$c->render( json => { 'pong' => $c->param('value'), 'number' => 1 } );
};
app->start( 'daemon', '-l', 'http://localhost:8888' );