// NextSkip advances the read pointer by multiple entries at once, // as specified by the skip parameter. func (j *Journal) NextSkip(skip uint64) (uint64, error) { j.mu.Lock() r := C.sd_journal_next_skip(j.cjournal, C.uint64_t(skip)) j.mu.Unlock() if r < 0 { return uint64(r), fmt.Errorf("failed to iterate journal: %d", r) } return uint64(r), nil }
func (s *Service) InitJournal() { r := C.sd_journal_open(&s.Journal, C.SD_JOURNAL_LOCAL_ONLY) if r < 0 { panic(fmt.Sprintf("failed to open journal: %s", C.strerror(-r))) } bytes, err := ioutil.ReadFile(*elasticCursorFile) if err == nil { s.Cursor = string(bytes) } if s.Cursor != "" { r = C.sd_journal_seek_cursor(s.Journal, C.CString(s.Cursor)) if r < 0 { panic(fmt.Sprintf("failed to seek journal: %s", C.strerror(-r))) } r = C.sd_journal_next_skip(s.Journal, 1) if r < 0 { panic(fmt.Sprintf("failed to skip current journal entry: %s", C.strerror(-r))) } } }
func (s *Service) InitJournal() { r := C.sd_journal_open(&s.Journal, C.SD_JOURNAL_LOCAL_ONLY) if r < 0 { log.Fatalf("failed to open journal: %s\n", C.strerror(-r)) } bytes, err := ioutil.ReadFile(s.Config.State) if err == nil { s.Cursor = string(bytes) } if s.Cursor != "" { r = C.sd_journal_seek_cursor(s.Journal, C.CString(s.Cursor)) if r < 0 { log.Fatalf("failed to seek journal: %s\n", C.strerror(-r)) } r = C.sd_journal_next_skip(s.Journal, 1) if r < 0 { log.Fatalf("failed to skip current journal entry: %s\n", C.strerror(-r)) } } }