@@ -372,6 +372,16 @@ const (
372372 SD_JOURNAL_FIELD_CURSOR = "__CURSOR"
373373 SD_JOURNAL_FIELD_REALTIME_TIMESTAMP = "__REALTIME_TIMESTAMP"
374374 SD_JOURNAL_FIELD_MONOTONIC_TIMESTAMP = "__MONOTONIC_TIMESTAMP"
375+
376+ // Journal Flags
377+ SD_JOURNAL_FLAG_LOCAL_ONLY = int (C .SD_JOURNAL_LOCAL_ONLY )
378+ SD_JOURNAL_FLAG_RUNTIME_ONLY = int (C .SD_JOURNAL_RUNTIME_ONLY )
379+ SD_JOURNAL_FLAG_SYSTEM = int (C .SD_JOURNAL_SYSTEM )
380+ SD_JOURNAL_FLAG_CURRENT_USER = int (C .SD_JOURNAL_CURRENT_USER )
381+ SD_JOURNAL_FLAG_OS_ROOT = int (C .SD_JOURNAL_OS_ROOT )
382+ SD_JOURNAL_FLAG_ALL_NAMESPACES = int (C .SD_JOURNAL_ALL_NAMESPACES )
383+ SD_JOURNAL_FLAG_INCLUDE_DEFAULT_NAMESPACE = int (C .SD_JOURNAL_INCLUDE_DEFAULT_NAMESPACE )
384+ SD_JOURNAL_FLAG_TAKE_DIRECTORY_FD = int (C .SD_JOURNAL_TAKE_DIRECTORY_FD )
375385)
376386
377387// Journal event constants
@@ -422,14 +432,20 @@ func (m *Match) String() string {
422432
423433// NewJournal returns a new Journal instance pointing to the local journal
424434func NewJournal () (j * Journal , err error ) {
435+ return NewJournalWithFlags (SD_JOURNAL_FLAG_LOCAL_ONLY )
436+ }
437+
438+ // NewJournalWithFlags return a new Journal instance pointing to the local journal
439+ // with a list of flags indicating the scope and type of entries that will be accessed.
440+ func NewJournalWithFlags (flags int ) (j * Journal , err error ) {
425441 j = & Journal {}
426442
427443 sd_journal_open , err := getFunction ("sd_journal_open" )
428444 if err != nil {
429445 return nil , err
430446 }
431447
432- r := C .my_sd_journal_open (sd_journal_open , & j .cjournal , C .SD_JOURNAL_LOCAL_ONLY )
448+ r := C .my_sd_journal_open (sd_journal_open , & j .cjournal , C .int ( flags ) )
433449
434450 if r < 0 {
435451 return nil , fmt .Errorf ("failed to open journal: %s" , syscall .Errno (- r ).Error ())
0 commit comments