def _write_line(self, line: str) -> None:
         'Send line-separator-delimited message over socket.'
         if not self._assumed_open:
-            self._q_to_main.eput('ALERT',
-                                 'cannot send, assuming connection closed')
+            self._broadcast('CONN_ALERT',
+                            'cannot send, assuming connection closed')
             return
         self._socket.sendall(line.encode('utf-8') + IRCSPEC_LINE_SEPARATOR)
 
         elif event.type_ == 'ALERT':
             self.window.log.append(f'{event.type_} {event.payload}')
             self.window.log.draw()
+        elif event.type_ in {'RECV', 'SEND', 'CONN_ALERT'}:
+            conn_win = self._conn_windows[event.payload[0]]
+            if event.type_ == 'CONN_ALERT':
+                msg = f'ALERT {event.payload[1]}'
+            else:
+                msg = (('<-' if event.type_ == 'RECV' else '->')
+                       + event.payload[1].raw)
+            conn_win.log.append(msg)
+            if conn_win == self.window:
+                self.window.log.draw()
         elif event.type_ in {'RECV', 'SEND'}:
             conn_win = self._conn_windows[event.payload[0]]
             prefix = '<-' if event.type_ == 'RECV' else '->'