Address log issue (#14958)
thiagoftsm committed
May 2, 2023 at 21:41 UTC
ab41c4b5bbd17132fb83e3fbeda4683e037c956e
1 file changed
+14
-11
libnetdata/log/log.c
+14
-11
@@ -582,9 +582,11 @@ void reopen_all_log_files() {
582
open_log_file(STDERR_FILENO, stderr, stdcollector_filename, &collector_log_syslog, 0, NULL);
583
584
if(stderr_filename) {
585
- log_lock();
586
- stderror = open_log_file(stdcollector_fd, stderror, stderr_filename, &error_log_syslog, 1, &stdcollector_fd);
587
- log_unlock();
585
+ // Netdata starts using stderr and if it has success to open file it redirects
586
+ FILE *fp = open_log_file(stdcollector_fd, stderror, stderr_filename,
587
+ &error_log_syslog, 1, &stdcollector_fd);
588
+ if (fp)
589
+ stderror = fp;
590
}
591
592
#ifdef ENABLE_ACLK
@@ -606,9 +608,10 @@ void open_all_log_files() {
608
open_log_file(STDOUT_FILENO, stdout, stdout_filename, &output_log_syslog, 0, NULL);
609
open_log_file(STDERR_FILENO, stderr, stdcollector_filename, &collector_log_syslog, 0, NULL);
610
609
- log_lock();
610
- stderror = open_log_file(stdcollector_fd, NULL, stderr_filename, &error_log_syslog, 1, &stdcollector_fd);
611
- log_unlock();
611
+ // Netdata starts using stderr and if it has success to open file it redirects
612
+ FILE *fp = open_log_file(stdcollector_fd, NULL, stderr_filename, &error_log_syslog, 1, &stdcollector_fd);
613
+ if (fp)
614
+ stderror = fp;
615
616
#ifdef ENABLE_ACLK
617
if(aclklog_enabled)
@@ -631,7 +634,7 @@ int error_log_limit(int reset) {
634
static time_t start = 0;
635
static unsigned long counter = 0, prevented = 0;
636
634
- FILE *fp = (!stderror) ? stderr : stderror;
637
+ FILE *fp = stderror;
638
639
// fprintf(fp, "FLOOD: counter=%lu, allowed=%lu, backup=%lu, period=%llu\n", counter, error_log_errors_per_period, error_log_errors_per_period_backup, (unsigned long long)error_log_throttle_period);
640
@@ -778,7 +781,7 @@ void debug_int( const char *file, const char *function, const unsigned long line
781
void info_int( int is_collector, const char *file __maybe_unused, const char *function __maybe_unused, const unsigned long line __maybe_unused, const char *fmt, ... )
782
{
783
va_list args;
781
- FILE *fp = (is_collector || !stderror) ? stderr : stderror;
784
+ FILE *fp = (is_collector) ? stderr : stderror;
785
786
log_lock();
787
@@ -838,7 +841,7 @@ static const char *strerror_result_string(const char *a, const char *b) { (void)
841
#endif
842
843
void error_limit_int(ERROR_LIMIT *erl, const char *prefix, const char *file __maybe_unused, const char *function __maybe_unused, const unsigned long line __maybe_unused, const char *fmt, ... ) {
841
- FILE *fp = (!stderror) ? stderr : stderror;
844
+ FILE *fp = stderror;
845
846
if(erl->sleep_ut)
847
sleep_usec(erl->sleep_ut);
@@ -907,7 +910,7 @@ void error_limit_int(ERROR_LIMIT *erl, const char *prefix, const char *file __ma
910
void error_int(int is_collector, const char *prefix, const char *file __maybe_unused, const char *function __maybe_unused, const unsigned long line __maybe_unused, const char *fmt, ... ) {
911
// save a copy of errno - just in case this function generates a new error
912
int __errno = errno;
910
- FILE *fp = (is_collector || !stderror) ? stderr : stderror;
913
+ FILE *fp = (is_collector) ? stderr : stderror;
914
915
va_list args;
916
@@ -972,7 +975,7 @@ static void print_call_stack(void) {
975
#endif
976
977
void fatal_int( const char *file, const char *function, const unsigned long line, const char *fmt, ... ) {
975
- FILE *fp = (!stderror) ? stderr : stderror;
978
+ FILE *fp = stderror;
979
980
// save a copy of errno - just in case this function generates a new error
981
int __errno = errno;