【问题标题】:What is the correct way to use Mojo::Log?使用 Mojo::Log 的正确方法是什么?
【发布时间】:2019-07-09 22:52:59
【问题描述】:

我想使用 Mojolicious 的Mojo::Log 工具来登录我的 Mojolicious Web 应用程序。但是,我不确定使用它的正确/正确方法。

documentation 显示它直接从脚本中使用,但没有说明它是线程安全的还是在控制器之间共享安全,或者每个控制器是否应该实例化自己的 Mojo::Log 对象(在这种情况下,将它们都指向同一个日志文件是否安全?)。

使用此记录器的正确方法是什么?

【问题讨论】:

    标签: perl mojolicious


    【解决方案1】:

    Mojolicious 应用程序有一个 Mojo::Log 对象,可通过 log 属性访问,它用于记录。大多数控制器应该能够共享它,其行为将根据当前模式、日志级别环境变量等进行设置。Mojolicious 本身不使用线程,而是使用协作多任务的IOLoop,实际上没有任何东西在运行在一个过程中同时进行;它使用flocked 写入,因此它不会与其他执行相同操作的进程并发,例如在像 Hypnotoad 这样的 prefork 服务器中,多个工作人员写入同一个日志。

    # startup or plugin code
    $app->log->debug('Debug message');
    
    # controller or helper code
    $c->app->log->info('Something happened');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 2021-09-23
      • 2017-04-07
      • 2013-01-09
      • 2013-03-19
      • 2019-05-11
      • 2018-02-17
      • 2022-01-07
      相关资源
      最近更新 更多