bbrist / laravel-console-logger
在 artisan 命令期间记录到控制台
Requires
- php: >=8.0
- laravel/framework: ^9.0
- symfony/console: ^v6.1.1
Requires (Dev)
- pestphp/pest: ^1.20
- phpstan/phpstan: ^1.5.6
README
laravel-console-logger 包是一个辅助包,旨在允许进行更深入的控制台日志记录
默认情况下,将此包添加到您的项目中将通过 ServiceProvider 自动将日志(即 Log::info() 语句)重定向到控制台输出。可以通过 Artisan 控制台的详细程度标志(例如 -v、-vv、-vvv、-q)更改输出的日志级别。
默认配置下,-q 将不输出任何内容,没有详细程度参数将输出 error 和更高级别的日志,-v 将输出 warning 和更高级别的日志,-vv 将输出 info 和更高级别的日志,而 -vvv 将输出所有日志到控制台。
可以使用 config/logging.php 配置文件来更改默认配置。默认情况下,notice、error、critical、alert 和 emergency 级别的日志会记录到控制台(即使指定了 -q)以及 laravel.log 文件中。要添加/删除要包含在 laravel.log 文件中的级别,只需设置/修改 config/logging.php 文件中的 console.logMethods 值。
要无论是否记录到控制台都记录所有日志到文件,您可以在 config/logging.php 文件中将 console.logToFile 值设置为 true。
强制记录到文件
Log::logToFile() 方法将强制后续所有日志记录到 laravel.log。您可以通过提供参数来显式设置此状态为 true 或 false(例如,Log::logToFile(false))。
当您想要确保代码块被记录到 laravel.log,而不管它在哪里如何执行(取决于 env('LOG_LEVEL') 的值)时,这很有用。
例如
public function mymethod() { Log::logToFile(true); // enable force log-to-file ... Log::info("some message"); // This will always be logged to file (dependent on the LOG_LEVEL ENV value) ... Log::logToFile(false); // disable force log-to-file }