diff --git a/ui/main_window.py b/ui/main_window.py
index d107609..bb28194 100644
--- a/ui/main_window.py
+++ b/ui/main_window.py
@@ -1142,39 +1142,36 @@ class MainWindow(QMainWindow):
def log_debug(self, source: str, message: str):
"""Log a debug message."""
- self.log_watcher.emit(LogEvent(
- timestamp=datetime.now(),
- level="DEBUG",
- source=source,
- message=message
- ))
+ self._append_log("DEBUG", source, message)
def log_info(self, source: str, message: str):
"""Log an info message."""
- self.log_watcher.emit(LogEvent(
- timestamp=datetime.now(),
- level="INFO",
- source=source,
- message=message
- ))
+ self._append_log("INFO", source, message)
def log_warning(self, source: str, message: str):
"""Log a warning message."""
- self.log_watcher.emit(LogEvent(
- timestamp=datetime.now(),
- level="WARNING",
- source=source,
- message=message
- ))
+ self._append_log("WARNING", source, message)
def log_error(self, source: str, message: str):
"""Log an error message."""
- self.log_watcher.emit(LogEvent(
- timestamp=datetime.now(),
- level="ERROR",
- source=source,
- message=message
- ))
+ self._append_log("ERROR", source, message)
+
+ def _append_log(self, level: str, source: str, message: str):
+ """Append log message to output."""
+ timestamp = datetime.now().strftime("%H:%M:%S")
+ color = {
+ "DEBUG": "#888888",
+ "INFO": "#4caf50",
+ "WARNING": "#ff9800",
+ "ERROR": "#f44336"
+ }.get(level, "#ffffff")
+
+ log_entry = f'[{timestamp}] [{level}] [{source}] {self.escape_html(message)}'
+ self.log_output.append(log_entry)
+
+ # Auto-scroll to bottom
+ scrollbar = self.log_output.verticalScrollBar()
+ scrollbar.setValue(scrollbar.maximum())
def escape_html(self, text: str) -> str:
"""Escape HTML special characters."""