mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-31 19:42:26 +00:00
info: avoid global variable for log_file
Use user_data to pass the log_file handle to the logger-function. If one wants to change the log target (e.g. GST_DEBUG_FILE), simply call gst_debug_remove_log_function() and re-add the handler with the new log-target using gst_debug_add_log_function ().
This commit is contained in:
parent
343007894e
commit
a528dadb98
1 changed files with 9 additions and 8 deletions
|
@ -264,8 +264,6 @@ static gboolean pretty_tags = PRETTY_TAGS_DEFAULT;
|
|||
static volatile gint G_GNUC_MAY_ALIAS __default_level = GST_LEVEL_DEFAULT;
|
||||
static volatile gint G_GNUC_MAY_ALIAS __use_color = GST_DEBUG_COLOR_MODE_ON;
|
||||
|
||||
static FILE *log_file;
|
||||
|
||||
/* FIXME: export this? */
|
||||
gboolean
|
||||
_priv_gst_in_valgrind (void)
|
||||
|
@ -304,6 +302,7 @@ void
|
|||
_priv_gst_debug_init (void)
|
||||
{
|
||||
const gchar *env;
|
||||
FILE *log_file;
|
||||
|
||||
env = g_getenv ("GST_DEBUG_FILE");
|
||||
if (env != NULL && *env != '\0') {
|
||||
|
@ -333,7 +332,7 @@ _priv_gst_debug_init (void)
|
|||
_GST_CAT_DEBUG = _gst_debug_category_new ("GST_DEBUG",
|
||||
GST_DEBUG_BOLD | GST_DEBUG_FG_YELLOW, "debugging subsystem");
|
||||
|
||||
gst_debug_add_log_function (gst_debug_log_default, NULL, NULL);
|
||||
gst_debug_add_log_function (gst_debug_log_default, log_file, NULL);
|
||||
|
||||
/* FIXME: add descriptions here */
|
||||
GST_CAT_GST_INIT = _gst_debug_category_new ("GST_INIT",
|
||||
|
@ -962,12 +961,13 @@ static const gchar *levelcolormap[GST_LEVEL_COUNT] = {
|
|||
* @message: the actual message
|
||||
* @object: (transfer none) (allow-none): the object this message relates to,
|
||||
* or %NULL if none
|
||||
* @unused: an unused variable, reserved for some user_data.
|
||||
* @user_data: the FILE* to log to
|
||||
*
|
||||
* The default logging handler used by GStreamer. Logging functions get called
|
||||
* whenever a macro like GST_DEBUG or similar is used. This function outputs the
|
||||
* message and additional info to stderr (or the log file specified via the
|
||||
* GST_DEBUG_FILE environment variable).
|
||||
* whenever a macro like GST_DEBUG or similar is used. By default this function
|
||||
* is setup to output the message and additional info to stderr (or the log file
|
||||
* specified via the GST_DEBUG_FILE environment variable) as received via
|
||||
* @user_data.
|
||||
*
|
||||
* You can add other handlers by using gst_debug_add_log_function().
|
||||
* And you can remove this handler by calling
|
||||
|
@ -976,12 +976,13 @@ static const gchar *levelcolormap[GST_LEVEL_COUNT] = {
|
|||
void
|
||||
gst_debug_log_default (GstDebugCategory * category, GstDebugLevel level,
|
||||
const gchar * file, const gchar * function, gint line,
|
||||
GObject * object, GstDebugMessage * message, gpointer unused)
|
||||
GObject * object, GstDebugMessage * message, gpointer user_data)
|
||||
{
|
||||
gint pid;
|
||||
GstClockTime elapsed;
|
||||
gchar *obj = NULL;
|
||||
GstDebugColorMode color_mode;
|
||||
FILE *log_file = user_data ? user_data : stderr;
|
||||
|
||||
if (level > gst_debug_category_get_threshold (category))
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue