result = (tuple(sorted(update.value)) if isinstance(update.value, set)
                   else update.value)
         announcement = ':' + ':'.join(update.full_path) + ' '
-        if result is None:
+        if result in (None, tuple()):
             announcement += 'cleared'
         else:
-            announcement += 'set to:'
-            if not isinstance(result, tuple):
-                announcement += f' [{result}]'
-        scope = _LogScope.DEBUG
-        update.results += [(scope, [announcement])]
-        if isinstance(result, tuple):
-            update.results += [(scope, [f':  {item}']) for item in result]
+            announcement += 'set to: '
+            announcement += ', '.join(
+                f'[{item}]' for item in (result if isinstance(result, tuple)
+                                         else (result, )))
+        update.results += [(_LogScope.DEBUG, [announcement])]
 
     def _get(self, key: str) -> Any:
         return getattr(self, key)
 
 loggedservermsg 0 1 < :foo.bar.baz 372 foo1 :- Welcome! -
 loggedservermsg 0 1 < :foo.bar.baz 372 foo1 :- (to this server) -
 loggedservermsg 0 1 < :foo.bar.baz 376 foo1 :End of /MOTD command
-log 1 $ motd set to:
-log 1 $   - Howdy! -
-log 1 $   - Welcome! -
-log 1 $   - (to this server) -
+log 1 $ motd set to: [- Howdy! -], [- Welcome! -], [- (to this server) -]
 log 2 $ - Howdy! -
 log 2 $ - Welcome! -
 log 2 $ - (to this server) -
 log 1 $ users:1:nick set to: [?]
 log 1 $ users:1:nick set to: [bar]
 loggedservermsg 0 1 < :foo.bar.baz 366 foo1 #test :End of /NAMES list.
-log 1 $ channels:#test:user_ids set to:
-log 1 $   1
-log 1 $   me
+log 1 $ channels:#test:user_ids set to: [1], [me]
 log 4 $ residents: bar, foo1
 # deliver PRIVMSG to channel window, update sender's user+host from metadata
 loggedservermsg 0 1 < :bar!~bar@bar.bar PRIVMSG #test :hi there
 log 1 $ users:2:nick set to: [baz]
 log 1 $ users:2:user set to: [~baz]
 log 1 $ users:2:host set to: [baz.baz]
-log 1 $ channels:#test:user_ids set to:
-log 1 $   1
-log 1 $   2
-log 1 $   me
+log 1 $ channels:#test:user_ids set to: [1], [2], [me]
 log 4 $ baz!~baz@baz.baz joins
 # join second channel with partial residents identity to compare distribution of resident-specific messages
 > /join #testtest
 log 5 $ bar!~bar@OLD.bar.bar set topic: baz bar foo
 loggedservermsg 0 1 < :foo.bar.baz 353 foo1 @ #testtest :foo1 baz
 loggedservermsg 0 1 < :foo.bar.baz 366 foo1 #testtest :End of /NAMES list.
-log 1 $ channels:#testtest:user_ids set to:
-log 1 $   2
-log 1 $   me
+log 1 $ channels:#testtest:user_ids set to: [2], [me]
 log 5 $ residents: baz, foo1
 # handle query window with known user
 loggedservermsg 0 1 < :baz!~baz@baz.baz PRIVMSG foo1 :hi there
 # handle non-self PART in one of two inhabited channels, preserve identity into re-JOIN
 loggedservermsg 0 1 < :bazbaz!~baz@baz.baz PART :#test
 log 1 $ channels:#test:exits:2 set to: [P]
-log 1 $ channels:#test:user_ids set to:
-log 1 $   1
-log 1 $   me
+log 1 $ channels:#test:user_ids set to: [1], [me]
 log 4 $ bazbaz!~baz@baz.baz parts
 log 1 $ channels:#test:exits:2 cleared
 loggedservermsg 0 1 < :bazbaz!~baz@baz.baz JOIN :#test
-log 1 $ channels:#test:user_ids set to:
-log 1 $   1
-log 1 $   2
-log 1 $   me
+log 1 $ channels:#test:user_ids set to: [1], [2], [me]
 log 4 $ bazbaz!~baz@baz.baz joins
 # handle non-self PART in only inhabited channel, lose identity, re-join as new identity
 loggedservermsg 0 1 < :bar!~bar@bar.bar PART :#test
 log 1 $ channels:#test:exits:1 set to: [P]
-log 1 $ channels:#test:user_ids set to:
-log 1 $   2
-log 1 $   me
+log 1 $ channels:#test:user_ids set to: [2], [me]
 log 4 $ bar!~bar@bar.bar parts
 log 1 $ channels:#test:exits:1 cleared
 log 1 $ users:1 cleared
 log 1 $ users:3:nick set to: [bar]
 log 1 $ users:3:user set to: [~bar]
 log 1 $ users:3:host set to: [bar.bar]
-log 1 $ channels:#test:user_ids set to:
-log 1 $   2
-log 1 $   3
-log 1 $   me
+log 1 $ channels:#test:user_ids set to: [2], [3], [me]
 log 4 $ bar!~bar@bar.bar joins
 # handle non-self QUIT
 loggedservermsg 0 1 < :bazbaz!~baz@baz.baz QUIT :Client Quit
 log 1 $ users:2:exit_msg set to: [QClient Quit]
 log 6 $ bazbaz!~baz@baz.baz quits: Client Quit
 log 1 $ channels:#test:exits:2 set to: [QClient Quit]
-log 1 $ channels:#test:user_ids set to:
-log 1 $   3
-log 1 $   me
+log 1 $ channels:#test:user_ids set to: [3], [me]
 log 4 $ bazbaz!~baz@baz.baz quits: Client Quit
 log 1 $ channels:#test:exits:2 cleared
 log 1 $ channels:#testtest:exits:2 set to: [QClient Quit]
-log 1 $ channels:#testtest:user_ids set to:
-log 1 $   me
+log 1 $ channels:#testtest:user_ids set to: [me]
 log 5 $ bazbaz!~baz@baz.baz quits: Client Quit
 log 1 $ channels:#testtest:exits:2 cleared
 log 1 $ users:2 cleared
 # handle self-PART: clear channel, and its squatters
 loggedservermsg 0 1 < :foo1!~foobarbaz@baz.bar.foo PART :#test
 log 1 $ channels:#test:exits:me set to: [P]
-log 1 $ channels:#test:user_ids set to:
-log 1 $   3
+log 1 $ channels:#test:user_ids set to: [3]
 log 4 $ foo1!~foobarbaz@baz.bar.foo parts
 log 1 $ channels:#test:exits:me cleared
 log 1 $ channels:#test cleared
 log 1 $ users:me:exit_msg set to: [QClient Quit]
 log 3,6,7 $ foo1!~foobarbaz@baz.bar.foo quits: Client Quit
 log 1 $ channels:#testtest:exits:me set to: [QClient Quit]
-log 1 $ channels:#testtest:user_ids set to:
+log 1 $ channels:#testtest:user_ids cleared
 log 5 $ foo1!~foobarbaz@baz.bar.foo quits: Client Quit
 log 1 $ channels:#testtest:exits:me cleared
 loggedservermsg 0 1 < ERROR :Closing link: (~foobarbaz@baz.bar.foo) [Quit: ircplom says bye]
 log 1 $ channels cleared
 log 1 $ connection_state set to: []
 log 2,3,4,5,6,7 $ DISCONNECTED
-log 1 $ motd set to:
+log 1 $ motd cleared
 log 1 $ sasl_account set to: []
 log 1 $ sasl_auth_state set to: []
 log 1 $ users cleared