The idea is that there are people like Sebastian_ who run a relay, but also use this relay for some client stuff like hidden service hosting. Those people might like to debug their hidden service, and thus disable safelogging for client-related log messages, while keeping everyone that uses their node as a relay safelogged.
We currently have a config option SafeLogging 0|1, and we want this to continue working like it works now.
We change the config option from a boolean to a list of allowed values, which are 0, 1, relay, client.
specifying "relay" means that relay-related log messages use safelogging, and client related messages do not.
client means that client-related log messages are safelogged, and relay related messages are not.
one and 0 are there so you can easily make sure safelogging is always used, or never used.
Does that make more sense?
(it is possible that later, more options are introduced. For example, "hidden service" could be another one)