systemd-journal logging interface wrapper for ruby (donated to theforeman, kept as a mirror)
Go to file
Anton Smirnov 14599bc774 Bump version to 1.0.10 2018-03-29 19:03:58 +03:00
ext/journald_native Append CFLAGS instead of overwriting 2018-03-29 19:03:37 +03:00
lib/journald Bump version to 1.0.10 2018-03-29 19:03:58 +03:00
spec add rspec test 2016-03-29 18:42:10 +03:00
.gitignore * compile dummy for non-linux 2015-02-05 16:58:57 +03:00
.travis.yml add travis.yml... and wait for xenial to be released 2016-03-29 19:03:04 +03:00 change license to LGPL, release as 1.0.9 2016-04-11 17:16:34 +03:00
Gemfile gem structure 2014-10-30 01:50:19 +03:00
LICENSE.txt change license to LGPL, release as 1.0.9 2016-04-11 17:16:34 +03:00 Explain dummy mode 2018-02-06 03:32:00 +02:00
Rakefile separating native lib and logger - rename gem to journald-native 2014-10-30 23:42:16 +03:00
journald-native.gemspec change license to LGPL, release as 1.0.9 2016-04-11 17:16:34 +03:00


Gem Version Reference Status

A systemd-journal native logging lib wrapper. See sd-journal help for more info



gem install journald-native

or add

gem 'journald-native', '~> 1.0'

to your Gemfile.

Please note that you need a systemd development package installed in your system like systemd-devel in Fedora, libsystemd-dev in Debian, also may be a separate package for journal in older systems like libsystemd-journal-dev.

NB: The gem can be installed on non-linux system but it will do nothing there. (Functions will return success without any actual effect)


require 'journald/native'


Constants are used to denote a log level

Available constants:

Journald::LOG_EMERG     # system is unusable
Journald::LOG_ALERT     # action must be taken immediately
Journald::LOG_CRIT      # critical conditions
Journald::LOG_ERR       # error conditions
Journald::LOG_WARNING   # warning conditions
Journald::LOG_NOTICE    # normal but significant condition
Journald::LOG_INFO      # informational
Journald::LOG_DEBUG     # debug-level messages

systemd-journal uses syslog constants to denote level therefore they are equal to those of the Syslog module, e.g. Journald::LOG_WARNING == Syslog::LOG_WARNING. See syslog man page for more info


Methods of Journald::Native class wrap systemd-journal calls. See sd-journal help for more info

Journald::Native.send "MESSAGE=message", "PRIORITY=#{Journald::LOG_WARNING}"
Journald::Native.print Journald::LOG_WARNING, "message"
Journald::Native.perror "message"

It is not recommended to use print and perror as you may get exception if your string contains '\0' byte due to C zero-terminated string format. On the contrary send uses binary buffers and does not have this shortcoming.


The gem is available as open source under the terms of the GNU Lesser General Public License, version 2.1 or later.