Ah tiens sinon une autre option serait de logger dans le syslog, j’ai fait un test avec la commande logger -t newsletter et ça donne ça avec journalctl --user -e :
janv. 07 15:37:01 club1.fr newsletter[1117196]: coucou depuis postfix local command delivery
Mais j’ai l’impression qu’il n’est pas possible ensuite de récupérer simplement tous les messages du service newsletter.
EDIT: ah si, avec journalctl --user -t newsletter.
Il y a un paquet log/syslog dans la lib standard de Go que tu peux utiliser, en gros il faudrait créer un nouveau logger avec syslog.New puis utiliser les methodes correspondantes à ton niveau de log, e.g.
package main
import (
"log"
"log/syslog"
)
func main() {
sysLog, err := syslog.New(syslog.LOG_USER, "newsletter")
if err != nil {
log.Fatal(err)
}
sysLog.Info("coucou depuis postfix local command delivery")
}
Et je viens de faire un test, c’est bien cloisonné entre les utilisateurs (à part pour moi qui suis admin):
nicolas@club1:~$ journalctl -t newsletter
janv. 07 15:43:19 club1.fr newsletter[1119016]: test
janv. 07 15:47:43 club1.fr newsletter[1120507]: coucou depuis postfix local command delivery
janv. 07 16:03:28 club1.fr newsletter[1124684]: coucou depuis postfix local command delivery vincent
nicolas@club1:~$ journalctl --user -t newsletter
janv. 07 15:43:19 club1.fr newsletter[1119016]: test
janv. 07 15:47:43 club1.fr newsletter[1120507]: coucou depuis postfix local command delivery
nicolas@club1:~$ sudo su vincent
vincent@club1:~$ journalctl --user -t newsletter
janv. 07 16:03:28 club1.fr newsletter[1124684]: coucou depuis postfix local command delivery vincent
vincent@club1:~$ journalctl -t newsletter
Hint: You are currently not seeing messages from other users and the system.
Users in groups 'adm', 'systemd-journal' can see all messages.
Pass -q to turn off this notice.
janv. 07 16:03:28 club1.fr newsletter[1124684]: coucou depuis postfix local command delivery vincent
Et à terme je pense qu’il serait même possible de configurer rsyslog pour lui faire écrire les logs avec le tag newsletter dans un fichier $HOME/log/newsletter.log. EDIT: Ouais bof en fait
Pour résumer, le syslog permettrait de résoudre le problème du log qui grossit à l’infini, tout en permettant de lire leur contenu assez facilement, on gagne aussi la notion de sévérité du message. Ça ne permet par contre pas de les stocker dans le dossier ~/log des membres.