J'utilise Ubuntu 16.04 Server avec un service node.js, où je dois obtenir le journal écrit dans un fichier, comme le bon vieux syslog :)
Je suis allé chercher sur Google la moitié de la nuit, mais rien ne s'est produit.
La raison derrière ce besoin étrange est que nous collectons les journaux via FileBeat et les envoyons à un cluster ElasticSearch.
Nous avons trouvé une solution de contournement à l'aide de systemd pour exécuter journalctl immédiatement après le démarrage du service, ce dont j'ai besoin pour obtenir un journal.
Ajoutez un script de service systemd pour créer un fichier journal pour "MyService" /etc/systemd/system/multi-user.target.wants/MyService-journalctl-to-log.service
:
[Unit]
Description=MyService journalctl parser to filebeat
#I needed to get a log file for filebeat to read
#Wants=filebeat.service
#After=filebeat.service
[Service]
Restart=always
RestartSec=5
ExecStart=/bin/sh -c '/bin/journalctl --no-tail -f -u MyService.service > /var/log/MyService.log 2>&1'
ExecStartPre=/bin/journalctl --vacuum-size=10M
[Install]
WantedBy=multi-user.target
Activer et démarrer le nouveau service systemd
systemctl enable MyService-journalctl-to-log.service
systemctl start MyService-journalctl-to-log.service