summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml6
-rw-r--r--HACKING.md21
-rw-r--r--docs/reference/libtracker-sparql/overview.xml44
-rw-r--r--meson.build15
-rw-r--r--src/libtracker-common/libtracker-common.vapi6
-rw-r--r--src/libtracker-common/meson.build2
-rw-r--r--src/libtracker-common/tracker-common.h2
-rw-r--r--src/libtracker-common/tracker-debug.c58
-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.h13
-rw-r--r--src/libtracker-common/tracker-file-utils.c1
-rw-r--r--src/libtracker-common/tracker-language.c1
-rw-r--r--src/libtracker-common/tracker-log.c321
-rw-r--r--src/libtracker-common/tracker-type-utils.c1
-rw-r--r--src/libtracker-data/tracker-data-manager.c76
-rw-r--r--src/libtracker-data/tracker-db-interface-sqlite.c3
-rw-r--r--src/tracker/tracker-main.c7
-rw-r--r--tests/functional-tests/fixtures.py2
-rw-r--r--tests/libtracker-data/tracker-sparql-test.c2
-rw-r--r--utils/trackertestutils/__main__.py29
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)