我想使用 MojoliciousMojo::Log工具来登录我的 Mojolicious Web 应用程序。但是,我不确定使用它的正确/正确方法。
文档显示它直接从脚本中使用,但没有说明它是否是线程安全的或在控制器之间共享是否安全,或者每个控制器是否应该实例化自己的Mojo::Log对象(在这种情况下,所有控制器都可以安全地使用它吗?指向同一个日志文件?)。
使用此记录器的正确方法是什么?
Mojolicious 应用程序有一个 Mojo::Log 对象,可通过log属性访问,并使用该对象进行日志记录。大多数控制器应该能够共享它,并且它的行为将根据当前模式、日志级别环境变量等进行设置。Mojolicious 本身不使用线程,而是使用 IOLoop,它是协作式多任务处理,实际上没有任何东西同时运行在一个过程中;它使用聚集写入,因此可以安全地避免与执行相同操作的其他进程并发,例如在像 Hypnotoad 这样的预分叉服务器中,多个工作进程写入同一日志。
# startup or plugin code
$app->log->debug('Debug message');
# controller or helper code
$c->app->log->info('Something happened');
Run Code Online (Sandbox Code Playgroud)