Logger.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace UCore\Helper;
  3. use Illuminate\Support\Facades\Log;
  4. /**
  5. * 日志助手类
  6. */
  7. class Logger
  8. {
  9. /**
  10. * 记录调试日志
  11. *
  12. * @param string $msg 日志消息
  13. * @param array $data 日志数据
  14. * @return void
  15. */
  16. static public function debug($msg, $data = [])
  17. {
  18. Log::debug($msg . ' ' . json_encode($data));
  19. }
  20. /**
  21. * 错误日志
  22. *
  23. * @param $msg
  24. * @param $data
  25. * @return void
  26. */
  27. static public function error($msg, $data = [])
  28. {
  29. Log::error($msg . ' ' . json_encode($data));
  30. }
  31. /**
  32. * 错误记录
  33. *
  34. * @param string $msg 日志消息
  35. * @param \Throwable $exception 异常对象
  36. * @param array $data 额外数据
  37. * @return void
  38. */
  39. static public function exception($msg, \Throwable $exception, $data = [])
  40. {
  41. // 格式化堆栈跟踪,使其换行显示
  42. $traceString = $exception->getTraceAsString();
  43. $formattedTrace = str_replace('#', "\n #", $traceString);
  44. // 构建格式化的日志信息
  45. $logMessage = $msg . "\n" .
  46. "异常信息: " . $exception->getMessage() . "\n" .
  47. "文件位置: " . $exception->getFile() . ":" . $exception->getLine() . "\n" .
  48. "堆栈跟踪:\n " . $formattedTrace;
  49. // 如果有额外数据,添加到日志中
  50. if (!empty($data)) {
  51. $logMessage .= "\n额外数据: " . json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
  52. }
  53. Log::error($logMessage);
  54. }
  55. static public function info($msg, $data = [])
  56. {
  57. Log::info($msg . ' ' . json_encode($data));
  58. }
  59. public static function clear_log()
  60. {
  61. // 获取当前日志文件路径
  62. $logPath = storage_path('logs');
  63. $currentDate = date('Y-m-d');
  64. // Laravel 默认日志文件名格式
  65. $logFiles = [
  66. $logPath . '/laravel.log',
  67. $logPath . "/laravel-{$currentDate}.log",
  68. ];
  69. $clearedCount = 0;
  70. foreach ($logFiles as $logFile) {
  71. if (file_exists($logFile)) {
  72. // 清空文件内容但保留文件
  73. file_put_contents($logFile, '');
  74. $clearedCount++;
  75. }
  76. }
  77. return $clearedCount;
  78. }
  79. }