sd-journal(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | THREAD SAFETY | OPTIONAL DEPENDENCIES | NOTES | SEE ALSO | COLOPHON

SD-JOURNAL(3)                   sd-journal                  SD-JOURNAL(3)

NAME         top

       sd-journal - APIs for submitting and querying log entries to and
       from the journal

SYNOPSIS         top

       #include <systemd/sd-journal.h>

       pkg-config --cflags --libs libsystemd

DESCRIPTION         top

       sd-journal.h is part of libsystemd(3) and provides APIs to submit
       and query log entries. The APIs exposed act both as client for the
       systemd-journald.service(8) journal service and as parser for the
       journal files on disk.

       See sd_journal_print(3), sd_journal_stream_fd(3),
       sd_journal_open(3), sd_journal_next(3),
       sd_journal_get_realtime_usec(3), sd_journal_add_match(3),
       sd_journal_seek_head(3), sd_journal_enumerate_fields(3),
       sd_journal_get_cursor(3), sd_journal_get_cutoff_realtime_usec(3),
       sd_journal_get_cutoff_monotonic_usec(3), sd_journal_get_usage(3),
       sd_journal_get_catalog(3), sd_journal_get_fd(3),
       sd_journal_has_runtime_files(3) and
       sd_journal_has_persistent_files(3) for more information about the
       functions implemented.

       Command line access for submitting entries to the journal is
       available with the systemd-cat(1) tool. Command line access for
       querying entries from the journal is available with the
       journalctl(1) tool.

THREAD SAFETY         top

       Functions that operate on sd_journal objects are thread agnostic —
       a given sd_journal pointer may only be used from one thread at a
       time, but multiple independent threads may use multiple objects
       concurrently. Some functions — those that are used to send entries
       to the journal, like sd_journal_print(3) and similar, or those
       that are used to retrieve global information like
       sd_journal_stream_fd(3) and
       sd_journal_get_catalog_for_message_id(3) — are fully thread-safe
       and may be called from multiple threads in parallel.

OPTIONAL DEPENDENCIES         top

       Depending on which build-time options are enabled, functions that
       operate on sd_journal objects might cause optional shared
       libraries to be dynamically loaded via dlopen(3), such as
       decompression libraries (xz, lz4, zstd).

NOTES         top

       Functions described here are available as a shared library, which
       can be compiled against and linked to with the
       libsystemd pkg-config(1) file.

       The code described here uses getenv(3), which is declared to be
       not multi-thread-safe. This means that the code calling the
       functions described here must not call setenv(3) from a parallel
       thread. It is recommended to only do calls to setenv() from an
       early phase of the program when no other threads have been
       started.

SEE ALSO         top

       systemd(1), sd_journal_print(3), sd_journal_stream_fd(3),
       sd_journal_open(3), sd_journal_next(3), sd_journal_get_data(3),
       sd_journal_get_realtime_usec(3), sd_journal_add_match(3),
       sd_journal_seek_head(3), sd_journal_enumerate_fields(3),
       sd_journal_get_cursor(3), sd_journal_get_cutoff_realtime_usec(3),
       sd_journal_get_cutoff_monotonic_usec(3), sd_journal_get_usage(3),
       sd_journal_get_fd(3), sd_journal_query_unique(3),
       sd_journal_get_catalog(3), sd_journal_has_runtime_files(3),
       sd_journal_has_persistent_files(3), journalctl(1), sd-id128(3),
       pkg-config(1)

COLOPHON         top

       This page is part of the systemd (systemd system and service
       manager) project.  Information about the project can be found at
       ⟨http://www.freedesktop.org/wiki/Software/systemd⟩.  If you have a
       bug report for this manual page, see
       ⟨http://www.freedesktop.org/wiki/Software/systemd/#bugreports⟩.
       This page was obtained from the project's upstream Git repository
       ⟨https://github.com/systemd/systemd.git⟩ on 2026-08-04.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2026-08-03.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there is
       a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

systemd 262~devel                                           SD-JOURNAL(3)

Pages that refer to this page: libsystemd(3)sd-id128(3)sd_journal_add_match(3)sd_journal_enumerate_fields(3)sd_journal_get_catalog(3)sd_journal_get_cursor(3)sd_journal_get_cutoff_realtime_usec(3)sd_journal_get_data(3)sd_journal_get_fd(3)sd_journal_get_realtime_usec(3)sd_journal_get_seqnum(3)sd_journal_get_usage(3)sd_journal_has_runtime_files(3)sd_journal_next(3)sd_journal_open(3)sd_journal_print(3)sd_journal_query_unique(3)sd_journal_seek_head(3)sd_journal_stream_fd(3)systemd.exec(5)systemd.directives(7)systemd.index(7)systemd.journal-fields(7)systemd-coredump(8)systemd-journald.service(8)