summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2021-03-27 13:07:32 +0100
committerHans de Goede <hdegoede@redhat.com>2021-03-29 09:24:45 +0200
commitca869a3fff761ea014e87db63c631fb85d968d91 (patch)
tree39be47f6ebb89a02664a048be63f230419d75a6e
parentcf1ca1945cd6714755aea56855d53051d1af215e (diff)
ply-logger: Add a ply_is_tracing_to_terminal () helper
Track if we are logging to the terminal (or to a file) and add a new ply_is_tracing_to_terminal () helper. This will be used in follow-up patches to replace some ply_is_tracing () checks for things which should only be done when tracing to a terminal (and not when tracing to a file). Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r--src/libply/ply-logger.c12
-rw-r--r--src/libply/ply-logger.h4
2 files changed, 16 insertions, 0 deletions
diff --git a/src/libply/ply-logger.c b/src/libply/ply-logger.c
index 03dd347f..749c9da5 100644
--- a/src/libply/ply-logger.c
+++ b/src/libply/ply-logger.c
@@ -61,6 +61,7 @@ typedef struct
struct _ply_logger
{
int output_fd;
+ bool output_fd_is_terminal;
char *filename;
char *buffer;
@@ -229,6 +230,7 @@ ply_logger_new (void)
logger = calloc (1, sizeof(ply_logger_t));
logger->output_fd = -1;
+ logger->output_fd_is_terminal = false;
logger->filename = NULL;
logger->is_enabled = true;
logger->tracing_is_enabled = false;
@@ -363,6 +365,7 @@ ply_logger_set_output_fd (ply_logger_t *logger,
assert (logger != NULL);
logger->output_fd = fd;
+ logger->output_fd_is_terminal = isatty(fd);
}
int
@@ -580,6 +583,15 @@ ply_logger_is_tracing_enabled (ply_logger_t *logger)
return logger->tracing_is_enabled != false;
}
+
+bool
+ply_logger_is_tracing_to_terminal (ply_logger_t *logger)
+{
+ assert (logger != NULL);
+
+ return logger->tracing_is_enabled && logger->output_fd_is_terminal;
+}
+
#endif /* PLY_ENABLE_TRACING */
/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */
diff --git a/src/libply/ply-logger.h b/src/libply/ply-logger.h
index 0015c0cf..8d8ee871 100644
--- a/src/libply/ply-logger.h
+++ b/src/libply/ply-logger.h
@@ -81,6 +81,7 @@ ply_logger_t *ply_logger_get_error_default (void);
#ifdef PLY_ENABLE_TRACING
void ply_logger_toggle_tracing (ply_logger_t *logger);
bool ply_logger_is_tracing_enabled (ply_logger_t *logger);
+bool ply_logger_is_tracing_to_terminal (ply_logger_t *logger);
#define ply_logger_trace(logger, format, args ...) \
do \
@@ -113,6 +114,7 @@ bool ply_logger_is_tracing_enabled (ply_logger_t *logger);
#define ply_logger_trace(logger, format, args ...)
#define ply_logger_toggle_tracing(logger)
#define ply_logger_is_tracing_enabled(logger) (false)
+#define ply_logger_is_tracing_to_terminal(logger) (false)
#endif /* PLY_ENABLE_TRACING */
/* convenience macros
@@ -140,6 +142,8 @@ bool ply_logger_is_tracing_enabled (ply_logger_t *logger);
ply_logger_toggle_tracing (ply_logger_get_error_default ())
#define ply_is_tracing() \
ply_logger_is_tracing_enabled (ply_logger_get_error_default ())
+#define ply_is_tracing_to_terminal() \
+ ply_logger_is_tracing_to_terminal (ply_logger_get_error_default ())
#define ply_trace(format, args ...) \
ply_logger_trace (ply_logger_get_error_default (), format, ## args)