【问题标题】:How to control logging for Mojolicious web server如何控制 Mojolicious Web 服务器的日志记录
【发布时间】:2022-01-21 14:49:44
【问题描述】:

我想更改 Mojolicious Web 服务器的默认日志记录级别,但在阅读文档后我无法弄清楚如何去做。我是一个相当新的 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)

我想将日志记录级别退回到“信息”。

【问题讨论】:

  • 这将有一个 Mojo 方式。 Perl 只是编写框架的语言。Python 中的不同框架也会有不同的配置方式。没有 Perl 方法。如果有的话,then there's many ;)
  • 还在项目目录中创建一个“日志”目录。您的日志将在该目录中创建,而不是在终端上。我相信你会喜欢 Mojolicious。在我的 Python 日常工作中,我有时会想念它。
  • @rai-gaurav - 感谢您的提示!

标签: perl logging mojolicious


【解决方案1】:

你可以这样设置日志级别:

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' );

【讨论】:

  • 谢谢。我以为我已经尝试过了,但它没有用。显然,我的操作员错误,因为这是解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
相关资源
最近更新 更多