Create separated syslog file for each host with rsyslog
Solution 1:
It seems it is documented on rsyslog web site here : https://www.rsyslog.com/storing-and-forwarding-remote-messages
To summarize :
You should define a template for log files, something like e.g :
# log every host in its own directory
$template RemoteHost,"/var/syslog/hosts/%HOSTNAME%/%$YEAR%/%$MONTH%/%$DAY%/syslog.log"
Then apply this template to messages coming from remote hosts :
# Remote Logging
$RuleSet remote
*.* ?RemoteHost