mirror of
https://github.com/systemd/systemd.git
synced 2025-03-31 14:50:15 +03:00
journalctl: show duplicate entries if they are from the same file (#14898)
When having a service which intentionally outputs multiple equal lines, all these messages might be inserted with the same timestamp. journalctl has a mechanism to avoid duplicate lines, which might be in different journal files. This patch allows duplicate lines, if they are from the same file.
This commit is contained in:
parent
693040bde5
commit
b6849042d6
@ -435,11 +435,12 @@ _public_ void sd_journal_flush_matches(sd_journal *j) {
|
||||
detach_location(j);
|
||||
}
|
||||
|
||||
_pure_ static int compare_with_location(JournalFile *f, Location *l) {
|
||||
_pure_ static int compare_with_location(const JournalFile *f, const Location *l, const JournalFile *current_file) {
|
||||
int r;
|
||||
|
||||
assert(f);
|
||||
assert(l);
|
||||
assert(current_file);
|
||||
assert(f->location_type == LOCATION_SEEK);
|
||||
assert(IN_SET(l->type, LOCATION_DISCRETE, LOCATION_SEEK));
|
||||
|
||||
@ -448,7 +449,8 @@ _pure_ static int compare_with_location(JournalFile *f, Location *l) {
|
||||
l->realtime_set &&
|
||||
f->current_realtime == l->realtime &&
|
||||
l->xor_hash_set &&
|
||||
f->current_xor_hash == l->xor_hash)
|
||||
f->current_xor_hash == l->xor_hash &&
|
||||
f != current_file)
|
||||
return 0;
|
||||
|
||||
if (l->seqnum_set &&
|
||||
@ -787,7 +789,7 @@ static int next_beyond_location(sd_journal *j, JournalFile *f, direction_t direc
|
||||
if (j->current_location.type == LOCATION_DISCRETE) {
|
||||
int k;
|
||||
|
||||
k = compare_with_location(f, &j->current_location);
|
||||
k = compare_with_location(f, &j->current_location, j->current_file);
|
||||
|
||||
found = direction == DIRECTION_DOWN ? k > 0 : k < 0;
|
||||
} else
|
||||
|
Loading…
x
Reference in New Issue
Block a user