diff options
author | Sam Thursfield <sam@afuera.me.uk> | 2020-04-23 21:51:10 +0000 |
---|---|---|
committer | Sam Thursfield <sam@afuera.me.uk> | 2020-04-23 21:51:10 +0000 |
commit | 814db7234d69693b5ab42669d714ef498840bf82 (patch) | |
tree | 30f791faea73df21962a89ddecd840a619c047ba | |
parent | c3916ecd9496637ef63270c2e1d7bc15a0ea63aa (diff) | |
parent | 947719f351eb2f4b6a1b886c38c8f086f15727a6 (diff) | |
download | tracker-814db7234d69693b5ab42669d714ef498840bf82.tar.gz |
Merge branch 'sam/debug' into 'master'
Rework debug logging for 3.0
Closes #178
See merge request GNOME/tracker!219
-rw-r--r-- | .gitlab-ci.yml | 6 | ||||
-rw-r--r-- | HACKING.md | 21 | ||||
-rw-r--r-- | docs/reference/libtracker-sparql/overview.xml | 44 | ||||
-rw-r--r-- | meson.build | 15 | ||||
-rw-r--r-- | src/libtracker-common/libtracker-common.vapi | 6 | ||||
-rw-r--r-- | src/libtracker-common/meson.build | 2 | ||||
-rw-r--r-- | src/libtracker-common/tracker-common.h | 2 | ||||
-rw-r--r-- | src/libtracker-common/tracker-debug.c | 58 | ||||
-rw-r--r-- | src/libtracker-common/tracker-debug.h (renamed from src/libtracker-common/tracker-log.h) | 40 | ||||
-rw-r--r-- | src/libtracker-common/tracker-enums.h | 13 | ||||
-rw-r--r-- | src/libtracker-common/tracker-file-utils.c | 1 | ||||
-rw-r--r-- | src/libtracker-common/tracker-language.c | 1 | ||||
-rw-r--r-- | src/libtracker-common/tracker-log.c | 321 | ||||
-rw-r--r-- | src/libtracker-common/tracker-type-utils.c | 1 | ||||
-rw-r--r-- | src/libtracker-data/tracker-data-manager.c | 76 | ||||
-rw-r--r-- | src/libtracker-data/tracker-db-interface-sqlite.c | 3 | ||||
-rw-r--r-- | src/tracker/tracker-main.c | 7 | ||||
-rw-r--r-- | tests/functional-tests/fixtures.py | 2 | ||||
-rw-r--r-- | tests/libtracker-data/tracker-sparql-test.c | 2 | ||||
-rw-r--r-- | utils/trackertestutils/__main__.py | 29 |
20 files changed, 162 insertions, 488 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 63410be89..e9043c364 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,8 @@ variables: # These can be used to see verbose log output from the functional-tests. # See HACKING.md for more information. - TRACKER_VERBOSITY: "1" + G_MESSAGES_DEBUG: "Tracker" + TRACKER_DEBUG: "" TRACKER_TESTS_VERBOSE: "no" # This can be used when debugging test failures that only occur within GitLab CI. @@ -37,7 +38,8 @@ stages: echo echo "Test suite settings:" echo - echo "TRACKER_VERBOSITY: ${TRACKER_VERBOSITY}" + echo "G_MESSAGES_DEBUG: ${G_MESSAGES_DEBUG}" + echo "TRACKER_DEBUG: ${TRACKER_DEBUG}" echo "TRACKER_TESTS_VERBOSE: ${TRACKER_TESTS_VERBOSE}" echo "MESON_TEST_EXTRA_ARGS: ${MESON_TEST_EXTRA_ARGS}" echo diff --git a/HACKING.md b/HACKING.md index f90522a50..7faaef41f 100644 --- a/HACKING.md +++ b/HACKING.md @@ -31,15 +31,18 @@ OpenSuSE do automated whole-system testing that includes the GNOME desktop for t The following environment variables control logging from Tracker daemons: - * `TRACKER_VERBOSITY`: takes a value of 1, 2 or 3 and causes increasing - amounts of log output from Tracker code to be written to stdout. - * `G_MESSAGES_DEBUG`: controls log output from GLib-based libraries that - are used in the Tracker process. Use `G_MESSAGES_DEBUG=all` for maximal - log output. - -Internally, Tracker will set `G_MESSAGES_DEBUG=Tracker` if `TRACKER_VERBOSITY` -is set and `G_MESSAGES_DEBUG` is not set, to enable printing of its own log -messages to stdout. + * `G_MESSAGES_DEBUG`: controls log output from all GLib-based libraries + in the current process. Use `G_MESSAGES_DEBUG=Tracker` to see Tracker + related messages, or `G_MESSAGES_DEBUG=all` to see everything. + * `TRACKER_DEBUG`: takes a comma-separated list of keywords to enable + extra debugging output. Use the keyword 'help' for a list of keywords. + + Options for libtracker-sparql include: + + - ontology-changes + - sql-statements + + See the relevant `man` page for options relevant to tracker-miner-fs. You can set these variables when using `tracker-sandbox`, and when running the Tracker test suite. Note that Meson will not print log output from tests by diff --git a/docs/reference/libtracker-sparql/overview.xml b/docs/reference/libtracker-sparql/overview.xml index 02a164218..0e746e1a1 100644 --- a/docs/reference/libtracker-sparql/overview.xml +++ b/docs/reference/libtracker-sparql/overview.xml @@ -40,48 +40,4 @@ <function><link linkend="tracker-sparql-connection-remote-new">tracker_sparql_connection_remote_new</link></function>. </para> </chapter> - - <chapter id="tracker-overview-environment-variables"> - <title>Environment Variables</title> - - <para> - There are a number of environment variables which affect the way - that the libtracker-sparql library will do its work. Those - environment variables are described here. - - <itemizedlist> - <listitem> - <emphasis>TRACKER_USE_LOG_FILES</emphasis> - <para> - Don't just log to stdout and stderr, but to log files too - which are kept in $HOME/.local/share/tracker/. This came - into effect in 0.15.3 and 0.16.0. After this version of - Tracker, logging to file (usually useful for debugging) - can only be done by declaring this environment variable. - </para> - </listitem> - <listitem> - <emphasis>TRACKER_USE_CONFIG_FILES</emphasis> - <para> - Don't use GSettings, instead use a config file similar to - how settings were saved in 0.10.x. That is, a file which - is much like an .ini file. These are saved to - $HOME/.config/tracker/ - </para> - </listitem> - <listitem> - <emphasis>TRACKER_VERBOSITY</emphasis> - <para> - Lets you choose the log level for libtracker-sparql. - configuration to control it. Values range - from <emphasis>0</emphasis> to <emphasis>3</emphasis>, - 0=errors, 1=minimal, 2=detailed, 3=debug. By default it - is <emphasis>0</emphasis>. - </para> - </listitem> - </itemizedlist> - </para> - - </chapter> - </part> diff --git a/meson.build b/meson.build index 407ff80a5..1e72fe963 100644 --- a/meson.build +++ b/meson.build @@ -67,11 +67,26 @@ add_project_arguments('-Wno-pointer-sign', language: 'c') add_project_arguments('-DTRACKER_COMPILATION', '-DG_LOG_DOMAIN="Tracker"', + '-DG_LOG_STRUCTURED=1', language: 'c') add_project_arguments(['-D', 'TRACKER_COMPILATION'], ['-D', 'G_LOG_DOMAIN="Tracker"'], + ['-D', 'G_LOG_STRUCTURED=1'], language: 'vala') +debug_cflags = [] +buildtype = get_option('buildtype') +if buildtype.startswith('debug') + debug_cflags += '-DG_ENABLE_DEBUG' + if buildtype == 'debug' + debug_cflags += '-DG_ENABLE_CONSISTENCY_CHECKS' + endif +elif buildtype == 'release' + debug_cflags += '-DG_DISABLE_CAST_CHECKS' +endif + +add_project_arguments(debug_cflags, language: 'c') + ################################################################## # Check for libtracker-common, make sure libstemmer exists ################################################################## diff --git a/src/libtracker-common/libtracker-common.vapi b/src/libtracker-common/libtracker-common.vapi index fa38e9f28..2946f52fc 100644 --- a/src/libtracker-common/libtracker-common.vapi +++ b/src/libtracker-common/libtracker-common.vapi @@ -61,12 +61,6 @@ namespace Tracker { public static void save_directory_list (void *object, string property, GLib.KeyFile key_file, string group, string key); } - [CCode (cheader_filename = "libtracker-common/tracker-common.h")] - namespace Log { - public bool init (int verbosity, out string used_filename); - public void shutdown (); - } - [CCode (cheader_filename = "libtracker-common/tracker-locale.h")] namespace Locale { public void sanity_check (); diff --git a/src/libtracker-common/meson.build b/src/libtracker-common/meson.build index 3ec6caec0..e2909e429 100644 --- a/src/libtracker-common/meson.build +++ b/src/libtracker-common/meson.build @@ -12,8 +12,8 @@ tracker_common_enum_header = enums[1] tracker_common_sources = [ 'tracker-date-time.c', + 'tracker-debug.c', 'tracker-file-utils.c', - 'tracker-log.c', 'tracker-type-utils.c', 'tracker-utils.c', 'tracker-locale.c', diff --git a/src/libtracker-common/tracker-common.h b/src/libtracker-common/tracker-common.h index 8d5df2be9..f30aeeb52 100644 --- a/src/libtracker-common/tracker-common.h +++ b/src/libtracker-common/tracker-common.h @@ -29,9 +29,9 @@ #define __LIBTRACKER_COMMON_INSIDE__ #include "tracker-date-time.h" +#include "tracker-debug.h" #include "tracker-file-utils.h" #include "tracker-language.h" -#include "tracker-log.h" #include "tracker-parser.h" #include "tracker-type-utils.h" #include "tracker-utils.h" diff --git a/src/libtracker-common/tracker-debug.c b/src/libtracker-common/tracker-debug.c new file mode 100644 index 000000000..d9285d7cc --- /dev/null +++ b/src/libtracker-common/tracker-debug.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2020, Sam Thursfield <sam@afuera.me.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "tracker-debug.h" + +#ifdef G_ENABLE_DEBUG +static const GDebugKey tracker_debug_keys[] = { + { "ontology-changes", TRACKER_DEBUG_ONTOLOGY_CHANGES }, + { "sql-statements", TRACKER_DEBUG_SQL_STATEMENTS }, +}; +#endif /* G_ENABLE_DEBUG */ + +static gpointer +parse_debug_flags () +{ + const gchar *env_string; + guint flags = 0; + + env_string = g_getenv ("TRACKER_DEBUG"); + if (env_string != NULL) { +#ifdef G_ENABLE_DEBUG + flags = g_parse_debug_string (env_string, tracker_debug_keys, G_N_ELEMENTS (tracker_debug_keys)); +#else + g_warning ("TRACKER_DEBUG set but ignored because tracker isn't built with G_ENABLE_DEBUG"); +#endif /* G_ENABLE_DEBUG */ + env_string = NULL; + } + + return GINT_TO_POINTER (flags); +} + +guint +tracker_get_debug_flags (void) +{ + static GOnce once = G_ONCE_INIT; + + g_once (&once, parse_debug_flags, NULL); + + return GPOINTER_TO_INT (once.retval); +} diff --git a/src/libtracker-common/tracker-log.h b/src/libtracker-common/tracker-debug.h index 369d022ee..67df8940c 100644 --- a/src/libtracker-common/tracker-log.h +++ b/src/libtracker-common/tracker-debug.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008, Nokia <ivan.frade@nokia.com> + * Copyright (C) 2020, Sam Thursfield <sam@afuera.me.uk> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -8,7 +8,7 @@ * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public @@ -17,21 +17,39 @@ * Boston, MA 02110-1301, USA. */ -#ifndef __LIBTRACKER_COMMON_LOG_H__ -#define __LIBTRACKER_COMMON_LOG_H__ +#ifndef __TRACKER_DEBUG_H__ +#define __TRACKER_DEBUG_H__ + +#if !defined (__LIBTRACKER_COMMON_INSIDE__) && !defined (TRACKER_COMPILATION) +#error "only <libtracker-common/tracker-common.h> must be included directly." +#endif #include <glib.h> G_BEGIN_DECLS -#if !defined (__LIBTRACKER_COMMON_INSIDE__) && !defined (TRACKER_COMPILATION) -#error "only <libtracker-common/tracker-common.h> must be included directly." -#endif +typedef enum { + TRACKER_DEBUG_ONTOLOGY_CHANGES = 1 << 1, + TRACKER_DEBUG_SQL_STATEMENTS = 1 << 2, +} TrackerDebugFlag; + +#ifdef G_ENABLE_DEBUG + +#define TRACKER_DEBUG_CHECK(type) G_UNLIKELY (tracker_get_debug_flags () & TRACKER_DEBUG_##type) + +#define TRACKER_NOTE(type,action) G_STMT_START { \ + if (TRACKER_DEBUG_CHECK (type)) \ + { action; }; } G_STMT_END + +#else /* !G_ENABLE_DEBUG */ + +#define TRACKER_DEBUG_CHECK(type) 0 +#define TRACKER_NOTE(type, action) + +#endif /* G_ENABLE_DEBUG */ -gboolean tracker_log_init (gint verbosity, - gchar **used_filename); -void tracker_log_shutdown (void); +guint tracker_get_debug_flags (void); G_END_DECLS -#endif /* __LIBTRACKER_COMMON_LOG_H__ */ +#endif /* __TRACKER_DEBUG_H__ */ diff --git a/src/libtracker-common/tracker-enums.h b/src/libtracker-common/tracker-enums.h index f3e2bbd53..d54b97b90 100644 --- a/src/libtracker-common/tracker-enums.h +++ b/src/libtracker-common/tracker-enums.h @@ -23,19 +23,6 @@ G_BEGIN_DECLS typedef enum { - TRACKER_VERBOSITY_ERRORS, - TRACKER_VERBOSITY_MINIMAL, - TRACKER_VERBOSITY_DETAILED, - TRACKER_VERBOSITY_DEBUG, -} TrackerVerbosity; - -typedef enum { - TRACKER_SCHED_IDLE_ALWAYS, - TRACKER_SCHED_IDLE_FIRST_INDEX, - TRACKER_SCHED_IDLE_NEVER, -} TrackerSchedIdle; - -typedef enum { TRACKER_SERIALIZATION_FORMAT_SPARQL, TRACKER_SERIALIZATION_FORMAT_TURTLE, /* JSON and JSON_LD are treated as the same thing right now, but we could diff --git a/src/libtracker-common/tracker-file-utils.c b/src/libtracker-common/tracker-file-utils.c index 53e39128b..1962a23d2 100644 --- a/src/libtracker-common/tracker-file-utils.c +++ b/src/libtracker-common/tracker-file-utils.c @@ -38,7 +38,6 @@ #include <glib/gstdio.h> #include <gio/gio.h> -#include "tracker-log.h" #include "tracker-file-utils.h" #include "tracker-type-utils.h" diff --git a/src/libtracker-common/tracker-language.c b/src/libtracker-common/tracker-language.c index 97fc41158..d0a47c012 100644 --- a/src/libtracker-common/tracker-language.c +++ b/src/libtracker-common/tracker-language.c @@ -28,7 +28,6 @@ #include <libstemmer.h> #endif /* HAVE_LIBSTEMMER */ -#include "tracker-log.h" #include "tracker-language.h" typedef struct _TrackerLanguagePrivate TrackerLanguagePrivate; diff --git a/src/libtracker-common/tracker-log.c b/src/libtracker-common/tracker-log.c deleted file mode 100644 index 094b71789..000000000 --- a/src/libtracker-common/tracker-log.c +++ /dev/null @@ -1,321 +0,0 @@ -/* - * Copyright (C) 2008, Nokia <ivan.frade@nokia.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" - -#include <sys/time.h> -#include <sys/resource.h> -#include <sys/types.h> -#include <fcntl.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <errno.h> - -#include <glib/gstdio.h> - -#include "tracker-log.h" -#include "tracker-file-utils.h" - -static gboolean initialized; -static FILE *fd; -static gint verbosity; -static guint log_handler_id; -static gboolean use_log_files; -static GMutex mutex; - -static inline void -log_output (const gchar *domain, - GLogLevelFlags log_level, - const gchar *message) -{ - time_t now; - gchar time_str[64]; - gchar *output; - struct tm *local_time; - const gchar *log_level_str; - static gsize size = 0; - - g_return_if_fail (initialized == TRUE); - g_return_if_fail (message != NULL && message[0] != '\0'); - - /* Ensure file logging is thread safe */ - g_mutex_lock (&mutex); - - /* Check log size, 10MiB limit */ - if (size > (10 << 20) && fd) { - rewind (fd); - - if (ftruncate (fileno (fd), 0) != 0) { - /* FIXME: What should we do if this fails? */ - } - - size = 0; - } - - now = time ((time_t *) NULL); - local_time = localtime (&now); - strftime (time_str, 64, "%d %b %Y, %H:%M:%S:", local_time); - - switch (log_level) { - case G_LOG_LEVEL_WARNING: - log_level_str = "-Warning **"; - break; - - case G_LOG_LEVEL_CRITICAL: - log_level_str = "-Critical **"; - break; - - case G_LOG_LEVEL_ERROR: - log_level_str = "-Error **"; - break; - case G_LOG_FLAG_RECURSION: - case G_LOG_FLAG_FATAL: - case G_LOG_LEVEL_MESSAGE: - case G_LOG_LEVEL_INFO: - case G_LOG_LEVEL_DEBUG: - case G_LOG_LEVEL_MASK: - default: - log_level_str = NULL; - break; - } - - output = g_strdup_printf ("%s%s %s%s: %s", - log_level_str ? "\n" : "", - time_str, - domain, - log_level_str ? log_level_str : "", - message); - - if (G_UNLIKELY (fd == NULL)) { - FILE *f; - - if (log_level == G_LOG_LEVEL_WARNING || - log_level == G_LOG_LEVEL_CRITICAL || - log_level == G_LOG_LEVEL_ERROR) { - f = stderr; - } else { - f = stdout; - } - - g_fprintf (f, "%s\n", output); - fflush (f); - } else { - size += g_fprintf (fd, "%s\n", output); - fflush (fd); - } - - g_free (output); - - g_mutex_unlock (&mutex); -} - -static void -tracker_log_handler (const gchar *domain, - GLogLevelFlags log_level, - const gchar *message, - gpointer user_data) -{ - /* Unless enabled, we don't log to file by default */ - if (use_log_files) { - log_output (domain, log_level, message); - } - - /* Now show the message through stdout/stderr as usual */ - g_log_default_handler (domain, log_level, message, user_data); -} - -static void -hide_log_handler (const gchar *domain, - GLogLevelFlags log_level, - const gchar *message, - gpointer user_data) -{ - /* do nothing */ -} - -static void -ensure_g_messages_debug_set () -{ - const gchar *value; - - value = g_getenv ("G_MESSAGES_DEBUG"); - - if (value == NULL) { - g_setenv ("G_MESSAGES_DEBUG", "Tracker", TRUE); - } -} - -gboolean -tracker_log_init (gint this_verbosity, - gchar **used_filename) -{ - const gchar *env_use_log_files; - const gchar *env_verbosity; - GLogLevelFlags hide_levels = 0; - - if (initialized) { - return TRUE; - } - - env_use_log_files = g_getenv ("TRACKER_USE_LOG_FILES"); - if (env_use_log_files != NULL) { - /* When set we use: - * ~/.local/share/Tracker/ - * Otherwise, we either of the following: - * ~/.xsession-errors - * ~/.cache/gdm/session.log - * systemd journal - * Depending on the system. - */ - use_log_files = TRUE; - } - - env_verbosity = g_getenv ("TRACKER_VERBOSITY"); - if (env_verbosity != NULL) { - this_verbosity = atoi (env_verbosity); - } else { - gchar *verbosity_string; - - /* make sure libtracker-sparql uses the same verbosity setting */ - - verbosity_string = g_strdup_printf ("%d", this_verbosity); - g_setenv ("TRACKER_VERBOSITY", verbosity_string, FALSE); - g_free (verbosity_string); - } - - /* If we have debug enabled, we imply G_MESSAGES_DEBUG or we - * see nothing, this came in since GLib 2.32. - */ - if (this_verbosity > 0) { - ensure_g_messages_debug_set (); - } - - if (use_log_files) { - gchar *basename; - gchar *filename; - - basename = g_strdup_printf ("%s.log", g_get_application_name ()); - filename = g_build_filename (g_get_user_data_dir (), - "tracker", - basename, - NULL); - g_free (basename); - - /* Open file */ - fd = g_fopen (filename, "a"); - if (!fd) { - const gchar *error_string; - - error_string = g_strerror (errno); - g_fprintf (stderr, - "Could not open log:'%s', %s\n", - filename, - error_string); - g_fprintf (stderr, - "All logging will go to stderr\n"); - - use_log_files = TRUE; - } - - if (used_filename) { - *used_filename = filename; - } else { - g_free (filename); - } - } else { - if (used_filename) { - *used_filename = NULL; - } - } - - verbosity = CLAMP (this_verbosity, 0, 3); - - g_mutex_init (&mutex); - - switch (this_verbosity) { - /* Log level 3: EVERYTHING */ - case 3: - break; - - /* Log level 2: CRITICAL/ERROR/WARNING/INFO/MESSAGE only */ - case 2: - hide_levels = G_LOG_LEVEL_DEBUG; - break; - - /* Log level 1: CRITICAL/ERROR/WARNING/INFO only */ - case 1: - hide_levels = G_LOG_LEVEL_DEBUG | - G_LOG_LEVEL_MESSAGE; - break; - - /* Log level 0: CRITICAL/ERROR/WARNING only (default) */ - default: - case 0: - hide_levels = G_LOG_LEVEL_DEBUG | - G_LOG_LEVEL_MESSAGE | - G_LOG_LEVEL_INFO; - break; - } - - if (hide_levels) { - /* Hide log levels according to configuration */ - log_handler_id = g_log_set_handler (G_LOG_DOMAIN, - hide_levels, - hide_log_handler, - NULL); - } - - /* Set log handler function for the rest */ - g_log_set_default_handler (tracker_log_handler, NULL); - - initialized = TRUE; - - /* log binary name and version */ - g_message ("Starting %s %s", g_get_application_name (), PACKAGE_VERSION); - - return TRUE; -} - -void -tracker_log_shutdown (void) -{ - if (!initialized) { - return; - } - - g_message ("Stopping %s %s", g_get_application_name (), PACKAGE_VERSION); - - /* Reset default log handler */ - g_log_set_default_handler (g_log_default_handler, NULL); - - if (log_handler_id) { - g_log_remove_handler (G_LOG_DOMAIN, log_handler_id); - log_handler_id = 0; - } - - if (use_log_files && fd != NULL) { - fclose (fd); - } - - g_mutex_clear (&mutex); - - initialized = FALSE; -} diff --git a/src/libtracker-common/tracker-type-utils.c b/src/libtracker-common/tracker-type-utils.c index 63f89dc87..37a095f20 100644 --- a/src/libtracker-common/tracker-type-utils.c +++ b/src/libtracker-common/tracker-type-utils.c @@ -30,7 +30,6 @@ #include <glib.h> -#include "tracker-log.h" #include "tracker-utils.h" #include "tracker-type-utils.h" diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c index 60621d397..997eeafd4 100644 --- a/src/libtracker-data/tracker-data-manager.c +++ b/src/libtracker-data/tracker-data-manager.c @@ -32,6 +32,7 @@ #include <libtracker-fts/tracker-fts.h> +#include <libtracker-common/tracker-debug.h> #include <libtracker-common/tracker-locale.h> #include "tracker-class.h" @@ -232,9 +233,10 @@ set_secondary_index_for_single_value_property (TrackerDBInterface *iface, { GError *internal_error = NULL; - g_debug ("Dropping secondary index (single-value property): " - "DROP INDEX IF EXISTS \"%s_%s\"", - service_name, field_name); + TRACKER_NOTE (ONTOLOGY_CHANGES, + g_message ("Dropping secondary index (single-value property): " + "DROP INDEX IF EXISTS \"%s_%s\"", + service_name, field_name)); tracker_db_interface_execute_query (iface, &internal_error, "DROP INDEX IF EXISTS \"%s\".\"%s_%s\"", @@ -248,9 +250,10 @@ set_secondary_index_for_single_value_property (TrackerDBInterface *iface, } if (enabled) { - g_debug ("Creating secondary index (single-value property): " - "CREATE INDEX \"%s_%s\" ON \"%s\" (\"%s\", \"%s\")", - service_name, field_name, service_name, field_name, second_field_name); + TRACKER_NOTE (ONTOLOGY_CHANGES, + g_message ("Creating secondary index (single-value property): " + "CREATE INDEX \"%s_%s\" ON \"%s\" (\"%s\", \"%s\")", + service_name, field_name, service_name, field_name, second_field_name)); tracker_db_interface_execute_query (iface, &internal_error, "CREATE INDEX \"%s\".\"%s_%s\" ON \"%s\" (\"%s\", \"%s\")", @@ -278,9 +281,10 @@ set_index_for_single_value_property (TrackerDBInterface *iface, { GError *internal_error = NULL; - g_debug ("Dropping index (single-value property): " - "DROP INDEX IF EXISTS \"%s_%s\"", - service_name, field_name); + TRACKER_NOTE (ONTOLOGY_CHANGES, + g_message ("Dropping index (single-value property): " + "DROP INDEX IF EXISTS \"%s_%s\"", + service_name, field_name)); tracker_db_interface_execute_query (iface, &internal_error, "DROP INDEX IF EXISTS \"%s\".\"%s_%s\"", @@ -301,9 +305,10 @@ set_index_for_single_value_property (TrackerDBInterface *iface, else expr = g_strdup_printf ("\"%s\"", field_name); - g_debug ("Creating index (single-value property): " - "CREATE INDEX \"%s_%s\" ON \"%s\" (%s)", - service_name, field_name, service_name, expr); + TRACKER_NOTE (ONTOLOGY_CHANGES, + g_message ("Creating index (single-value property): " + "CREATE INDEX \"%s_%s\" ON \"%s\" (%s)", + service_name, field_name, service_name, expr)); tracker_db_interface_execute_query (iface, &internal_error, "CREATE INDEX \"%s\".\"%s_%s\" ON \"%s\" (%s)", @@ -333,9 +338,10 @@ set_index_for_multi_value_property (TrackerDBInterface *iface, GError *internal_error = NULL; gchar *expr; - g_debug ("Dropping index (multi-value property): " - "DROP INDEX IF EXISTS \"%s_%s_ID_ID\"", - service_name, field_name); + TRACKER_NOTE (ONTOLOGY_CHANGES, + g_message ("Dropping index (multi-value property): " + "DROP INDEX IF EXISTS \"%s_%s_ID_ID\"", + service_name, field_name)); tracker_db_interface_execute_query (iface, &internal_error, "DROP INDEX IF EXISTS \"%s\".\"%s_%s_ID_ID\"", @@ -351,10 +357,10 @@ set_index_for_multi_value_property (TrackerDBInterface *iface, /* Useful to have this here for the cases where we want to fully * re-create the indexes even without an ontology change (when locale * of the user changes) */ - g_debug ("Dropping index (multi-value property): " - "DROP INDEX IF EXISTS \"%s_%s_ID\"", - service_name, - field_name); + TRACKER_NOTE (ONTOLOGY_CHANGES, + g_message ("Dropping index (multi-value property): " + "DROP INDEX IF EXISTS \"%s_%s_ID\"", + service_name, field_name)); tracker_db_interface_execute_query (iface, &internal_error, "DROP INDEX IF EXISTS \"%s\".\"%s_%s_ID\"", database, @@ -376,12 +382,10 @@ set_index_for_multi_value_property (TrackerDBInterface *iface, expr = g_strdup_printf ("\"%s\"", field_name); if (enabled) { - g_debug ("Creating index (multi-value property): " - "CREATE INDEX \"%s_%s_ID\" ON \"%s_%s\" (ID)", - service_name, - field_name, - service_name, - field_name); + TRACKER_NOTE (ONTOLOGY_CHANGES, + g_message ("Creating index (multi-value property): " + "CREATE INDEX \"%s_%s_ID\" ON \"%s_%s\" (ID)", + service_name, field_name, service_name, field_name)); tracker_db_interface_execute_query (iface, &internal_error, "CREATE INDEX \"%s\".\"%s_%s_ID\" ON \"%s_%s\" (ID)", @@ -396,13 +400,10 @@ set_index_for_multi_value_property (TrackerDBInterface *iface, return; } - g_debug ("Creating index (multi-value property): " - "CREATE UNIQUE INDEX \"%s_%s_ID_ID\" ON \"%s_%s\" (%s, ID)", - service_name, - field_name, - service_name, - field_name, - expr); + TRACKER_NOTE (ONTOLOGY_CHANGES, + g_message ("Creating index (multi-value property): " + "CREATE UNIQUE INDEX \"%s_%s_ID_ID\" ON \"%s_%s\" (%s, ID)", + service_name, field_name, service_name, field_name, expr)); tracker_db_interface_execute_query (iface, &internal_error, "CREATE UNIQUE INDEX \"%s\".\"%s_%s_ID_ID\" ON \"%s_%s\" (%s, ID)", @@ -418,13 +419,10 @@ set_index_for_multi_value_property (TrackerDBInterface *iface, return; } } else { - g_debug ("Creating index (multi-value property): " - "CREATE UNIQUE INDEX \"%s_%s_ID_ID\" ON \"%s_%s\" (ID, %s)", - service_name, - field_name, - service_name, - field_name, - expr); + TRACKER_NOTE (ONTOLOGY_CHANGES, + g_message ("Creating index (multi-value property): " + "CREATE UNIQUE INDEX \"%s_%s_ID_ID\" ON \"%s_%s\" (ID, %s)", + service_name, field_name, service_name, field_name, expr)); tracker_db_interface_execute_query (iface, &internal_error, "CREATE UNIQUE INDEX \"%s\".\"%s_%s_ID_ID\" ON \"%s_%s\" (ID, %s)", diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c b/src/libtracker-data/tracker-db-interface-sqlite.c index fb5bcb46d..545f26690 100644 --- a/src/libtracker-data/tracker-db-interface-sqlite.c +++ b/src/libtracker-data/tracker-db-interface-sqlite.c @@ -27,6 +27,7 @@ #include <errno.h> #include <libtracker-common/tracker-date-time.h> +#include <libtracker-common/tracker-debug.h> #include <libtracker-common/tracker-locale.h> #include <libtracker-common/tracker-parser.h> @@ -2512,7 +2513,7 @@ tracker_db_interface_prepare_stmt (TrackerDBInterface *db_interface, sqlite3_stmt *sqlite_stmt; int retval; - g_debug ("Preparing query: '%s'", full_query); + TRACKER_NOTE (SQL_STATEMENTS, g_message ("Preparing query: '%s'", full_query)); retval = sqlite3_prepare_v2 (db_interface->db, full_query, -1, &sqlite_stmt, NULL); if (retval != SQLITE_OK) { diff --git a/src/tracker/tracker-main.c b/src/tracker/tracker-main.c index 7120fd79a..a1250eba4 100644 --- a/src/tracker/tracker-main.c +++ b/src/tracker/tracker-main.c @@ -122,16 +122,9 @@ run_builtin (struct cmd_struct *p, int argc, const char **argv) static void handle_command (int argc, const char **argv) { - gchar *log_filename = NULL; char *cmd = g_path_get_basename (argv[0]); int i; - tracker_log_init (0, &log_filename); - if (log_filename != NULL) { - g_message ("Using log file:'%s'", log_filename); - g_free (log_filename); - } - for (i = 0; i < G_N_ELEMENTS (commands); i++) { struct cmd_struct *p = commands + i; diff --git a/tests/functional-tests/fixtures.py b/tests/functional-tests/fixtures.py index 7e715c3f0..b42d742c4 100644 --- a/tests/functional-tests/fixtures.py +++ b/tests/functional-tests/fixtures.py @@ -53,7 +53,7 @@ def tracker_test_main(): else: # Output some messages from D-Bus daemon to stderr by default. In practice, # only errors and warnings should be output here unless the environment - # contains G_MESSAGES_DEBUG= and/or TRACKER_VERBOSITY=1 or more. + # contains G_MESSAGES_DEBUG=. handler_stderr = logging.StreamHandler(stream=sys.stderr) handler_stderr.addFilter(logging.Filter('trackertestutils.dbusdaemon.stderr')) handler_stdout = logging.StreamHandler(stream=sys.stderr) diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c index f4864b8b0..49689f187 100644 --- a/tests/libtracker-data/tracker-sparql-test.c +++ b/tests/libtracker-data/tracker-sparql-test.c @@ -488,8 +488,6 @@ main (int argc, char **argv) setlocale (LC_COLLATE, "en_US.utf8"); - tracker_log_init (0, NULL); - current_dir = g_get_current_dir (); tests_data_dir = g_build_filename (current_dir, "sparql-test-data-XXXXXX", NULL); g_free (current_dir); diff --git a/utils/trackertestutils/__main__.py b/utils/trackertestutils/__main__.py index 9812ffd2c..e41138383 100644 --- a/utils/trackertestutils/__main__.py +++ b/utils/trackertestutils/__main__.py @@ -86,7 +86,7 @@ def environment_set_and_add_path(env, var, prefix, suffix): env[var] = full -def create_sandbox(index_location, prefix=None, verbosity=0, dbus_config=None, +def create_sandbox(index_location, prefix=None, dbus_config=None, interactive=False): assert prefix is None or dbus_config is None @@ -107,8 +107,6 @@ def create_sandbox(index_location, prefix=None, verbosity=0, dbus_config=None, # Preferences extra_env['G_MESSAGES_PREFIXED'] = 'all' - extra_env['TRACKER_VERBOSITY'] = str(verbosity) - log.debug('Using prefix location "%s"' % prefix) log.debug('Using index location "%s"' % index_location) @@ -188,9 +186,6 @@ def argument_parser(): help="run Tracker from the given install prefix. You " "can run the system version of Tracker by " "specifying --prefix=/usr") - parser.add_argument('-v', '--verbosity', default=None, - choices=['0', '1', '2', '3', 'errors', 'minimal', 'detailed', 'debug'], - help="show debugging info from Tracker processes") parser.add_argument('-i', '--index', metavar='DIR', action=expand_path, default=default_index_location, dest='index_location', help=f"directory to the index (default={default_index_location})") @@ -214,16 +209,6 @@ def argument_parser(): return parser -def verbosity_as_int(verbosity): - verbosity_map = { - 'errors': 0, - 'minimal': 1, - 'detailed': 2, - 'debug': 3 - } - return verbosity_map.get(verbosity, int(verbosity)) - - def init_logging(debug_sandbox, debug_dbus): SANDBOX_FORMAT = "%(name)s: %(message)s" DBUS_FORMAT = "%(message)s" @@ -353,16 +338,6 @@ def main(): "Note that running Tracker from the build tree implies " "--dbus-config.") - if args.verbosity is None: - verbosity = verbosity_as_int(os.environ.get('TRACKER_VERBOSITY', 0)) - else: - verbosity = verbosity_as_int(args.verbosity) - if 'TRACKER_VERBOSITY' in os.environ: - if verbosity != int(os.environ['TRACKER_VERBOSITY']): - raise RuntimeError("Incompatible values for TRACKER_VERBOSITY " - "from environment and from --verbosity " - "parameter.") - if args.command is None and args.wait_for_miner is not None: raise RuntimeError("--wait-for-miner cannot be used when opening an " "interactive shell.") @@ -380,7 +355,7 @@ def main(): interactive = not (args.command) # Set up environment variables and foo needed to get started. - sandbox = create_sandbox(index_location, args.prefix, verbosity, + sandbox = create_sandbox(index_location, args.prefix, dbus_config=args.dbus_config, interactive=interactive) config_set(sandbox) |