ErrorFormatter.php 810 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Logging;
  3. use Illuminate\Support\Facades\Auth;
  4. use Illuminate\Support\Facades\Log;
  5. use Monolog\Logger;
  6. /**
  7. * Handler error events
  8. *
  9. * Class ErrorFormatter
  10. * @package App\Logging
  11. */
  12. class ErrorFormatter
  13. {
  14. /**
  15. * @param Logger|\Illuminate\Log\Logger $logger
  16. */
  17. public function __invoke($logger)
  18. {
  19. $logger->setExceptionHandler(function ($e) {
  20. if (stripos($e->getMessage(),"Permission denied")){
  21. try {
  22. if (PHP_OS != 'WINNT')exec("chmod 777 ".base_path("storage/logs/error-".date("Y-m-d").".log"),$output,$return);
  23. }catch (\Exception $e){
  24. Log::critical("日志写入错误",["msg"=>$e->getMessage(),"user"=>Auth::id()]);
  25. }
  26. }
  27. });
  28. }
  29. }