I start a bash shell script via a oneshot unit. I output standard messages currently with

echo $message
echo $message >> $logfile.txt

With this I have output on screen and additionally in a logfile. I don’t know if there is a better way to do that.

This works for standard infos fine. Additionally there must be a way to output also error messages and warnings, since when I look into other services, I see red messages for errors and yellow/orange colored messages for warnings.

How can I do such things with my bash script and output other levels like warnings in yellow and errors in red?

  • Chais@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 months ago

    AFAIK the general approach to logging with systemd is that the application simply writes to stdout/stderr and systemd takes care of passing the output to whatever logging target/s you configured.
    As for signaling log levels with bash, you can write functions that prepend any timestamps, markers or wrap the string in any color codes you want.