From: Zbigniew Jędrzejewski-Szmek Date: Fri, 19 Jul 2019 16:08:31 +0000 (+0200) Subject: journal: emit debug log about settings only once (or when changed) X-Git-Tag: v243-rc1~27^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=170a434c784fc7919e6ad7c269ea4f7abcc6065a;p=thirdparty%2Fsystemd.git journal: emit debug log about settings only once (or when changed) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=902795 https://bugzilla.redhat.com/show_bug.cgi?id=1715699 report "thousands" of those messages. I think this occurs when journald rotates files very quickly. Nevertheless, logging this over and over is not useful, let's do it just once. --- diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index 91ca53e5ebe..f0dd695adbc 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -3185,7 +3185,6 @@ int journal_file_open( JournalFile *f; void *h; int r; - char bytes[FORMAT_BYTES_MAX]; assert(ret); assert(fd >= 0 || fname); @@ -3221,9 +3220,23 @@ int journal_file_open( #endif }; - log_debug("Journal effective settings seal=%s compress=%s compress_threshold_bytes=%s", - yes_no(f->seal), yes_no(JOURNAL_FILE_COMPRESS(f)), - format_bytes(bytes, sizeof(bytes), f->compress_threshold_bytes)); + if (DEBUG_LOGGING) { + static int last_seal = -1, last_compress = -1; + static uint64_t last_bytes = UINT64_MAX; + char bytes[FORMAT_BYTES_MAX]; + + if (last_seal != f->seal || + last_compress != JOURNAL_FILE_COMPRESS(f) || + last_bytes != f->compress_threshold_bytes) { + + log_debug("Journal effective settings seal=%s compress=%s compress_threshold_bytes=%s", + yes_no(f->seal), yes_no(JOURNAL_FILE_COMPRESS(f)), + format_bytes(bytes, sizeof bytes, f->compress_threshold_bytes)); + last_seal = f->seal; + last_compress = JOURNAL_FILE_COMPRESS(f); + last_bytes = f->compress_threshold_bytes; + } + } if (mmap_cache) f->mmap = mmap_cache_ref(mmap_cache);