I've found library's that allow logging out to journald which suggests that, yes you should use a library where possible and log to journald from inside your app.
But then there are tools like systemd-cat
or systemd config options like this (from this) :
[Service]
StandardError=journal
StandardOutput=journal
StandardInput=null
Which suggests I can just pipe the output of stdout/stderr of the service to journald and not worry about doing something journald specific so now I'm not certain.
Can someone definitively state when it's appropriate to use one method verses another? (and any other I don't know about)