10 votes

Comment enregistrer un message multiligne avec la commande logger ?

Je veux enregistrer un message multiligne dans le journal du système par l'intermédiaire de la commande

echo -e "foo\nbar" | logger

Mais il apparaît comme 2 journaux.

Est-il possible d'enregistrer un seul journal ?

7voto

user9517 Points 113163

Logger ne contient pas cette fonctionnalité, il est fondamentalement orienté ligne - chaque ligne est un nouveau message.

Les messages de journal à plusieurs lignes sont également très difficiles à traiter avec des utilitaires standard comme grep, etc. En fonction de leur heure d'arrivée, les messages peuvent également être divisés, ce qui complique la recherche d'informations pertinentes.

Une meilleure solution est d'enregistrer vos messages comme un seul message. Comme @Benjamin le suggère, vous pouvez utiliser tr ou echo -En. Si vous avez vraiment besoin d'avoir le \n pour un affichage ultérieur, puis utilisez tr pour modifier l'affichage de l'écran. \n en un autre caractère que votre utilitaire ne générera pas pour écrire le journal et, lors de la lecture, utilisez tr pour le reconvertir en un caractère \n.

3voto

Benjamin Sonntag Points 204

Bien sûr, il suffit de remplacer \n par l'espace comme ceci :

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

0voto

bechitra Points 51

Une alternative - en supposant que vous ayez besoin de garder les lignes séparées par une 'nouvelle ligne' - serait d'écrire d'abord dans un fichier temporaire, puis dans le fichier utilisateur.

logger -t <title> -f <temp-file>

-1voto

scottbiker Points 1

Diviser la sortie...
Ejemplo:

ip route show |while read line; do logger -t TEST $line; done

-1voto

sheldonzy Points 101

Vous pouvez procéder comme suit :

MESSAGE="this is my message: \nhello \nnewline \nin logger"
logger "$(printf "$MESSAGE")"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X