我想使用 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/