1. import logging
  2. import os
  3. import json
  4. from datetime import datetime
  5. class SandboxLogger:
  6. def __init__(self, log_file="sandbox.log"):
  7. self.log_file = log_file
  8. self.logger = logging.getLogger(__name__)
  9. self.logger.setLevel(logging.INFO) # Set default logging level
  10. # Create a handler to write logs to the file
  11. self.file_handler = logging.FileHandler(self.log_file)
  12. self.formatter = logging.Formatter('%(message)s') # Simple message format
  13. self.file_handler.setFormatter(self.formatter)
  14. self.logger.addHandler(self.file_handler)
  15. def log_entry(self, message, level="INFO", data=None):
  16. """
  17. Logs an entry to the sandbox log file.
  18. Args:
  19. message (str): The log message.
  20. level (str): The log level (e.g., "DEBUG", "INFO", "WARNING", "ERROR"). Defaults to "INFO".
  21. data (dict, optional): Additional data to include in the log entry. Defaults to None.
  22. """
  23. try:
  24. log_data = {
  25. "timestamp": datetime.now().isoformat(),
  26. "level": level,
  27. "message": message,
  28. "data": data
  29. }
  30. # Log to file
  31. self.logger.info(json.dumps(log_data))
  32. except Exception as e:
  33. self.logger.error(f"Error logging entry: {e}")
  34. def clear_log(self):
  35. """
  36. Clears the log file.
  37. """
  38. try:
  39. open(self.log_file, 'w').close()
  40. except Exception as e:
  41. self.logger.error(f"Error clearing log file: {e}")
  42. def get_log_content(self):
  43. """
  44. Returns the entire log file content as a string.
  45. """
  46. try:
  47. with open(self.log_file, 'r') as f:
  48. return f.read()
  49. except FileNotFoundError:
  50. return "Log file not found."
  51. except Exception as e:
  52. return f"Error reading log file: {e}"
  53. def check_log_file_exists(self):
  54. """
  55. Checks if the log file exists. Returns True if it exists, False otherwise.
  56. """
  57. return os.path.exists(self.log_file)

Add your comment