journalctl
Note that most current Linux distributions use journald, rather than syslog.
echo 'hello' | systemd-cat -p info
echo 'hello' | systemd-cat -t someapp
journalctl -t someapp
journalctl -t CRON
journalctl --identifier CRON
journalctl -f
journalctl -t CRON --since yesterday
journalctl --since now|today|yesterday|tomorrow --until YYYY-MM-DD HH:MM:SS
journalctl -o json
journalctl -o json-pretty
journalctl --utc # display the timestamps in UTC
journalctl -b # entries that have been collected since the most recent reboot.
logger
is much more flexibletldr logger
logger
Add messages to syslog (/var/log/syslog).
More information: https://manned.org/logger.
- Log a message to syslog:
logger message
- Take input from stdin and log to syslog:
echo log_entry | logger
- Send the output to a remote syslog server running at a given port. Default port is 514:
echo log_entry | logger --server hostname --port port
- Use a specific tag for every line logged. Default is the name of logged in user:
echo log_entry | logger --tag tag
- Log messages with a given priority. Default is `user.notice`. See `man logger` for all priority options:
echo log_entry | logger --priority user.warning
>>> import syslog
>>> syslog.syslog('hello')
syslog.openlog('foo')
syslog.syslog('bar')
syslog.closelog()
journalctl -t foo # works