test-logger-demo.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env php
  2. <?php
  3. /*
  4. * Demo script showing PsySH logging functionality.
  5. *
  6. * This script demonstrates how to configure PsySH with a logger
  7. * to capture input, commands, and executed code.
  8. */
  9. require __DIR__.'/vendor/autoload.php';
  10. use Psy\Configuration;
  11. use Psy\Shell;
  12. echo "PsySH Logger Demo\n";
  13. echo "=================\n\n";
  14. echo "Configuring PsySH with a simple callback logger...\n\n";
  15. // Create a configuration with logging enabled
  16. $config = new Configuration([
  17. 'updateCheck' => 'never',
  18. ]);
  19. // Simple callback - just pass a closure
  20. $config->setLogging(function ($kind, $data) {
  21. echo "[{$kind}] {$data}\n";
  22. });
  23. echo "Logger configured with defaults:\n";
  24. echo " - input: info\n";
  25. echo " - command: info\n";
  26. echo " - execute: debug\n\n";
  27. echo "You can also use a PSR-3 logger:\n";
  28. echo " \$config->setLogging(\$psrLogger);\n\n";
  29. echo "Or configure granular log levels:\n";
  30. echo " \$config->setLogging([\n";
  31. echo " 'logger' => \$logger,\n";
  32. echo " 'inputLevel' => 'debug',\n";
  33. echo " 'commandLevel' => 'info',\n";
  34. echo " 'executeLevel' => false, // disable execute logging\n";
  35. echo " ]);\n\n";
  36. echo "Starting PsySH shell with logging enabled...\n";
  37. echo "Try these commands to see logging in action:\n";
  38. echo " - \$x = 123\n";
  39. echo " - ls\n";
  40. echo " - doc array_map\n";
  41. echo " - exit\n\n";
  42. echo "---\n\n";
  43. // Create and run the shell
  44. $shell = new Shell($config);
  45. $shell->run();