mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -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