php - 从应用程序 start.php 访问 Laravel 日志的正确方法是什么
问题描述
抱歉,这似乎是一个愚蠢的问题,但我正在学习 Laravel 框架的运作方式。我有一个使用 Laravel 框架的工作网络应用程序。日志文件设置在 backend/app/start/global.php
|--------------------------------------------------------------------------
| Application Error Logger
|--------------------------------------------------------------------------
|
| Here we will configure the error logger setup for the application which
| is built on top of the wonderful Monolog library. By default we will
| build a rotating log file setup which creates a new file each day.
|
*/
$logFile = 'log-'.php_sapi_name().'.txt';
Log::useDailyFiles(storage_path().'/logs/'.$logFile);
Log::info('Log file set to '.$logFile);
Log::info()
我添加到文件的最后一行,它工作正常。但是我需要将类似的信息记录消息添加到后端/bootstrap/start.php。我现在想添加一个Log::info()
声明。我通过 start.php 中的行引用了 Laravel 应用程序
$app = new Illuminate\Foundation\Application;
所以我的问题是;如果我使用的是 Laravel 框架,那么获取对 global.php 中定义的 Laravel“日志”的引用的正确方法是什么。这样我就可以添加一行,例如:
Log::info('Using Environment '.$key);
解决方案
使用$app['log']->info('Stuff you want to log')
应该可以,但我认为这不是一个好主意。
这个文件的存在只是为了创建“应用程序”,但你不需要在里面做任何事情,因为配置文件甚至没有加载,这就是为什么你不能在这里使用 Facades,没有配置文件 => 没有 Facades。
推荐阅读
- node.js - PhantomJS 按钮在页面上单击两次
- android - Detox 不在 Android 上运行测试,但在 iOS 上运行良好
- php - 在 SNMP oids 上正确排序
- mongodb - 查找并更新数组大小小于字段值的文档
- javascript - Jquery淡出不适用于Jquery加载的内容?
- javascript - 如何将输出从一个文本区域传递到不同的文本区域
- symfony - 将对象绑定到 Symfony 表单
- node.js - 在侦听另一个地方的更改时尝试更新 firebase 数据库中的值(云功能)
- elm - 带和不带 (..) 的 Elm 模块导入
- angular - 如何在第二次单击Angular 2+时取消选中单选按钮