self.update_login(nickname=msg.params[0], nick_confirmed=True)
             case 'PRIVMSG':
                 nickname = msg.source.split('!')[0]
-                self.log.add(f'<[{nickname}] {msg.params[-1]}',
+                self.log.add(f'< [{nickname}] {msg.params[-1]}',
                              stream=nickname,
                              prefix=_LOG_PREFIX_PRIVMSG)
             case 'CAP':
 
     def cmd__privmsg(self, target: str, msg: str) -> None:
         'Send chat message msg to target.'
         self._send_msg('PRIVMSG', (target, msg),
-                       stream=target, to_log=f'>[MYSELF] {msg}')
+                       stream=target, to_log=f'>{self.prompt.prefix}{msg}')
 
 
 class _PrivmsgPromptWidget(PromptWidget):
-    _prefix: str = ''
+    _nickname: str = ''
+    _nick_confirmed: bool = False
 
     @property
     def prefix(self) -> str:
-        return self._prefix + super().prefix
+        return (' ' if self._nick_confirmed else '?') + f'[{self._nickname}] '
 
     def update_prefix(self, nick_confirmed: bool, nickname: str) -> None:
         'Update prompt prefix with nickname data.'
-        self._prefix = (' ' if nick_confirmed else '?') + nickname
+        self._nickname = nickname
+        self._nick_confirmed = nick_confirmed
         self.tainted = True
 
     @classmethod