mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	log: add an easy way to disable log rate limiting
Should help with debuggin bugs like: https://bugzilla.redhat.com/show_bug.cgi?id=554405
This commit is contained in:
		
							parent
							
								
									4bcb1a909f
								
							
						
					
					
						commit
						21b484e056
					
				
					 1 changed files with 50 additions and 38 deletions
				
			
		| 
						 | 
					@ -61,6 +61,7 @@
 | 
				
			||||||
#define ENV_LOG_PRINT_LEVEL "PULSE_LOG_LEVEL"
 | 
					#define ENV_LOG_PRINT_LEVEL "PULSE_LOG_LEVEL"
 | 
				
			||||||
#define ENV_LOG_BACKTRACE "PULSE_LOG_BACKTRACE"
 | 
					#define ENV_LOG_BACKTRACE "PULSE_LOG_BACKTRACE"
 | 
				
			||||||
#define ENV_LOG_BACKTRACE_SKIP "PULSE_LOG_BACKTRACE_SKIP"
 | 
					#define ENV_LOG_BACKTRACE_SKIP "PULSE_LOG_BACKTRACE_SKIP"
 | 
				
			||||||
 | 
					#define ENV_LOG_NO_RATELIMIT "PULSE_LOG_NO_RATE_LIMIT"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static char *ident = NULL; /* in local charset format */
 | 
					static char *ident = NULL; /* in local charset format */
 | 
				
			||||||
static pa_log_target_t target = PA_LOG_STDERR, target_override;
 | 
					static pa_log_target_t target = PA_LOG_STDERR, target_override;
 | 
				
			||||||
| 
						 | 
					@ -68,6 +69,7 @@ static pa_bool_t target_override_set = FALSE;
 | 
				
			||||||
static pa_log_level_t maximum_level = PA_LOG_ERROR, maximum_level_override = PA_LOG_ERROR;
 | 
					static pa_log_level_t maximum_level = PA_LOG_ERROR, maximum_level_override = PA_LOG_ERROR;
 | 
				
			||||||
static unsigned show_backtrace = 0, show_backtrace_override = 0, skip_backtrace = 0;
 | 
					static unsigned show_backtrace = 0, show_backtrace_override = 0, skip_backtrace = 0;
 | 
				
			||||||
static pa_log_flags_t flags = 0, flags_override = 0;
 | 
					static pa_log_flags_t flags = 0, flags_override = 0;
 | 
				
			||||||
 | 
					static pa_bool_t no_rate_limit = FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HAVE_SYSLOG_H
 | 
					#ifdef HAVE_SYSLOG_H
 | 
				
			||||||
static const int level_to_syslog[] = {
 | 
					static const int level_to_syslog[] = {
 | 
				
			||||||
| 
						 | 
					@ -195,6 +197,8 @@ static char* get_backtrace(unsigned show_nframes) {
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void init_defaults(void) {
 | 
					static void init_defaults(void) {
 | 
				
			||||||
 | 
					    PA_ONCE_BEGIN {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const char *e;
 | 
					        const char *e;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!ident) {
 | 
					        if (!ident) {
 | 
				
			||||||
| 
						 | 
					@ -243,6 +247,11 @@ static void init_defaults(void) {
 | 
				
			||||||
            if (skip_backtrace <= 0)
 | 
					            if (skip_backtrace <= 0)
 | 
				
			||||||
                skip_backtrace = 0;
 | 
					                skip_backtrace = 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (getenv(ENV_LOG_NO_RATELIMIT))
 | 
				
			||||||
 | 
					            no_rate_limit = TRUE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } PA_ONCE_END;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pa_log_levelv_meta(
 | 
					void pa_log_levelv_meta(
 | 
				
			||||||
| 
						 | 
					@ -268,9 +277,7 @@ void pa_log_levelv_meta(
 | 
				
			||||||
    pa_assert(level < PA_LOG_LEVEL_MAX);
 | 
					    pa_assert(level < PA_LOG_LEVEL_MAX);
 | 
				
			||||||
    pa_assert(format);
 | 
					    pa_assert(format);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PA_ONCE_BEGIN {
 | 
					 | 
				
			||||||
    init_defaults();
 | 
					    init_defaults();
 | 
				
			||||||
    } PA_ONCE_END;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _target = target_override_set ? target_override : target;
 | 
					    _target = target_override_set ? target_override : target;
 | 
				
			||||||
    _maximum_level = PA_MAX(maximum_level, maximum_level_override);
 | 
					    _maximum_level = PA_MAX(maximum_level, maximum_level_override);
 | 
				
			||||||
| 
						 | 
					@ -428,5 +435,10 @@ pa_bool_t pa_log_ratelimit(void) {
 | 
				
			||||||
    /* Not more than 10 messages every 5s */
 | 
					    /* Not more than 10 messages every 5s */
 | 
				
			||||||
    static PA_DEFINE_RATELIMIT(ratelimit, 5 * PA_USEC_PER_SEC, 10);
 | 
					    static PA_DEFINE_RATELIMIT(ratelimit, 5 * PA_USEC_PER_SEC, 10);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    init_defaults();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (no_rate_limit)
 | 
				
			||||||
 | 
					        return TRUE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return pa_ratelimit_test(&ratelimit);
 | 
					    return pa_ratelimit_test(&ratelimit);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue