To have it automatically restart on failure, you can add the following to your systemd unit:
[Service]
Restart=on-failure
RestartSec=5s
See this blog post for more information.
But to find the root cause of why it's failing, you can run systemctl status <service>
when it fails to get the most recent logs and hopefully an error as to why it failed.
Yes, you can get the full log with journalctl.