perl - 使用 Mojo::Log 的正确方法是什么?

标签 perl mojolicious

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

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

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

最佳答案

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

# startup or plugin code
$app->log->debug('Debug message');

# controller or helper code
$c->app->log->info('Something happened');

关于perl - 使用 Mojo::Log 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56961392/

相关文章:

linux - 如何停止使用 Perl 运行的进程?

perl - WWW::Mechanize GET 超时时保存部分内容

perl - Atom 编辑器和嵌入式 perl : syntax highlighting

perl - 如何在测试 mojolicious 应用程序时使用路由名称?

perl - 如何使用 Mojolicious 上传多个文件?

perl - 将变量传递给 Mojolicious 中的布局模板

Perl - 具有修改后数据的新哈希项,源自另一个条目的馈线哈希,破坏了第一个条目

perl - 如何比较两个文本文件并删除匹配的内容并传递到 perl 中的输出?

regex - 字符名称,替换和Umlaut “Ü”:格式错误的UTF-8字符

linux - 无法安装 mojolicious