summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/logging.c
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs/src/logging.c')
-rw-r--r--libglusterfs/src/logging.c73
1 files changed, 32 insertions, 41 deletions
diff --git a/libglusterfs/src/logging.c b/libglusterfs/src/logging.c
index 4408c5f674c..55cf2e97d2c 100644
--- a/libglusterfs/src/logging.c
+++ b/libglusterfs/src/logging.c
@@ -164,7 +164,6 @@ gf_log_set_xl_loglevel (void *this, gf_loglevel_t level)
xlator_t *xl = this;
if (!xl)
return;
- xl->ctx->log.gf_log_xl_log_set = 1;
xl->loglevel = level;
}
@@ -770,6 +769,30 @@ set_sys_log_level (gf_loglevel_t level)
ctx->log.sys_log_level = level;
}
+/* Check if we should be logging
+ * Return value: _gf_false : Print the log
+ * _gf_true : Do not Print the log
+ */
+static gf_boolean_t
+skip_logging (xlator_t *this, gf_loglevel_t level)
+{
+ gf_boolean_t ret = _gf_false;
+ gf_loglevel_t existing_level = GF_LOG_NONE;
+
+ if (level == GF_LOG_NONE) {
+ ret = _gf_true;
+ goto out;
+ }
+
+ existing_level = this->loglevel ? this->loglevel : this->ctx->log.loglevel;
+ if (level > existing_level) {
+ ret = _gf_true;
+ goto out;
+ }
+out:
+ return ret;
+}
+
int
_gf_log_callingfn (const char *domain, const char *file, const char *function,
int line, gf_loglevel_t level, const char *fmt, ...)
@@ -793,11 +816,7 @@ _gf_log_callingfn (const char *domain, const char *file, const char *function,
if (!ctx)
goto out;
- if (ctx->log.gf_log_xl_log_set) {
- if (this->loglevel && (level > this->loglevel))
- goto out;
- }
- if (level > ctx->log.loglevel || level == GF_LOG_NONE)
+ if (skip_logging (this, level))
goto out;
static char *level_strings[] = {"", /* NONE */
@@ -984,11 +1003,7 @@ _gf_msg_plain (gf_loglevel_t level, const char *fmt, ...)
if (!ctx)
goto out;
- if (ctx->log.gf_log_xl_log_set) {
- if (this->loglevel && (level > this->loglevel))
- goto out;
- }
- if (level > ctx->log.loglevel || level == GF_LOG_NONE)
+ if (skip_logging (this, level))
goto out;
va_start (ap, fmt);
@@ -1020,11 +1035,7 @@ _gf_msg_vplain (gf_loglevel_t level, const char *fmt, va_list ap)
if (!ctx)
goto out;
- if (ctx->log.gf_log_xl_log_set) {
- if (this->loglevel && (level > this->loglevel))
- goto out;
- }
- if (level > ctx->log.loglevel || level == GF_LOG_NONE)
+ if (skip_logging (this, level))
goto out;
ret = vasprintf (&msg, fmt, ap);
@@ -1052,11 +1063,7 @@ _gf_msg_plain_nomem (gf_loglevel_t level, const char *msg)
if (!ctx)
goto out;
- if (ctx->log.gf_log_xl_log_set) {
- if (this->loglevel && (level > this->loglevel))
- goto out;
- }
- if (level > ctx->log.loglevel || level == GF_LOG_NONE)
+ if (skip_logging (this, level))
goto out;
ret = _gf_msg_plain_internal (level, msg);
@@ -1084,11 +1091,7 @@ _gf_msg_backtrace_nomem (gf_loglevel_t level, int stacksize)
if (ctx->log.logger != gf_logger_glusterlog)
goto out;
- if (ctx->log.gf_log_xl_log_set) {
- if (this->loglevel && (level > this->loglevel))
- goto out;
- }
- if (level > ctx->log.loglevel || level == GF_LOG_NONE)
+ if (skip_logging (this, level))
goto out;
bt_size = backtrace (array, ((stacksize <= 200)? stacksize : 200));
@@ -1171,11 +1174,7 @@ _gf_msg_nomem (const char *domain, const char *file,
if (!ctx)
goto out;
- if (ctx->log.gf_log_xl_log_set) {
- if (this->loglevel && (level > this->loglevel))
- goto out;
- }
- if (level > ctx->log.loglevel || level == GF_LOG_NONE)
+ if (skip_logging (this, level))
goto out;
if (!domain || !file || !function) {
@@ -2040,11 +2039,7 @@ _gf_msg (const char *domain, const char *file, const char *function,
}
/* check if we should be logging */
- if (ctx->log.gf_log_xl_log_set) {
- if (this->loglevel && (level > this->loglevel))
- goto out;
- }
- if (level > ctx->log.loglevel || level == GF_LOG_NONE)
+ if (skip_logging (this, level))
goto out;
if (trace) {
@@ -2121,11 +2116,7 @@ _gf_log (const char *domain, const char *file, const char *function, int line,
if (!ctx)
goto out;
- if (ctx->log.gf_log_xl_log_set) {
- if (this->loglevel && (level > this->loglevel))
- goto out;
- }
- if (level > ctx->log.loglevel || level == GF_LOG_NONE)
+ if (skip_logging (this, level))
goto out;
static char *level_strings[] = {"", /* NONE */