How to log multiline message with logger command?

7,868

Solution 1

Logger doesn't contain this functionality it is basically line orientated - every line is a new message.

Multi-line log messages are also a real pain to deal with using standard utilities like grep etc. Depending on their arrival time the messages could also get split making it harder to track down relevant information.

A better solution is to log your messages as a single message. As @Benjamin suggests you can use tr or you could use echo -En. If you really need to have the \n for later display purposes then use tr to change the \n to some other character that your utility will not generate to write the log and when reading use tr to convert it back to a \n.

Solution 2

Sure, just replace \n by space as this :

echo -e "foo\nbar" | tr '\n' ' ' | logger

Share:
7,868

Related videos on Youtube

Howard
Author by

Howard

Updated on September 18, 2022

Comments

  • Howard
    Howard almost 2 years

    I want to log a multiline message into the system logger via the commabnd

    echo -e "foo\nbar" | logger
    

    But it appear as 2 logs.

    Is it possible to log as a single log?

  • user9517
    user9517 about 10 years
    This still inserts each line as a separate log message.