Log: new logging library API

Prepare to migrate away from GLib.  Currently, we're still using GLib
as a backend.
This commit is contained in:
Max Kellermann
2013-09-27 22:31:24 +02:00
parent c53492a76a
commit 060814daa8
162 changed files with 1992 additions and 1280 deletions

View File

@@ -25,14 +25,15 @@
#include "Song.hxx"
#include "tag/Tag.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
#include "Log.hxx"
#include <glib.h>
#include <assert.h>
#include <string.h>
#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN "asx"
static constexpr Domain asx_domain("asx");
/**
* This is the state object for the GLib XML parser.
@@ -224,7 +225,7 @@ asx_open_stream(struct input_stream *is)
if (nbytes == 0) {
if (error2.IsDefined()) {
g_markup_parse_context_free(context);
g_warning("%s", error2.GetMessage());
LogError(error2);
return NULL;
}
@@ -234,7 +235,8 @@ asx_open_stream(struct input_stream *is)
success = g_markup_parse_context_parse(context, buffer, nbytes,
&error);
if (!success) {
g_warning("XML parser failed: %s", error->message);
FormatErrno(asx_domain,
"XML parser failed: %s", error->message);
g_error_free(error);
g_markup_parse_context_free(context);
return NULL;
@@ -243,7 +245,8 @@ asx_open_stream(struct input_stream *is)
success = g_markup_parse_context_end_parse(context, &error);
if (!success) {
g_warning("XML parser failed: %s", error->message);
FormatErrno(asx_domain,
"XML parser failed: %s", error->message);
g_error_free(error);
g_markup_parse_context_free(context);
return NULL;

View File

@@ -29,9 +29,6 @@
#include <assert.h>
#include <string.h>
#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN "cue"
class CuePlaylist final : public SongEnumerator {
struct input_stream *is;
TextInputStream tis;

View File

@@ -24,13 +24,12 @@
#include "MemorySongEnumerator.hxx"
#include "tag/Tag.hxx"
#include "Song.hxx"
#include "Log.hxx"
extern "C" {
#include <despotify.h>
}
#include <glib.h>
#include <string.h>
#include <stdlib.h>
@@ -48,7 +47,8 @@ add_song(std::forward_list<SongPointer> &songs, struct ds_track *track)
if (despotify_track_to_uri(track, ds_uri) != ds_uri) {
/* Should never really fail, but let's be sure */
g_debug("Can't add track %s\n", track->title);
FormatDebug(despotify_domain,
"Can't add track %s", track->title);
return;
}
@@ -99,7 +99,7 @@ despotify_playlist_open_uri(const char *url,
ds_link *link =
despotify_link_from_uri(url + strlen(despotify_playlist_plugin.schemes[0]) + 3);
if (link == nullptr) {
g_debug("Can't find %s\n", url);
FormatDebug(despotify_domain, "Can't find %s\n", url);
return nullptr;
}

View File

@@ -39,9 +39,6 @@
#include <assert.h>
#include <string.h>
#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN "cue"
class EmbeddedCuePlaylist final : public SongEnumerator {
public:
/**

View File

@@ -25,11 +25,15 @@
#include "Song.hxx"
#include "tag/Tag.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
#include "Log.hxx"
#include <glib.h>
#include <string>
static constexpr Domain pls_domain("pls");
static void
pls_parser(GKeyFile *keyfile, std::forward_list<SongPointer> &songs)
{
@@ -40,7 +44,8 @@ pls_parser(GKeyFile *keyfile, std::forward_list<SongPointer> &songs)
int num_entries = g_key_file_get_integer(keyfile, "playlist",
"NumberOfEntries", &error);
if (error) {
g_debug("Invalid PLS file: '%s'", error->message);
FormatError(pls_domain,
"Invalid PLS file: '%s'", error->message);
g_error_free(error);
error = NULL;
@@ -59,7 +64,8 @@ pls_parser(GKeyFile *keyfile, std::forward_list<SongPointer> &songs)
value = g_key_file_get_string(keyfile, "playlist", key,
&error);
if(error) {
g_debug("Invalid PLS entry %s: '%s'",key, error->message);
FormatError(pls_domain, "Invalid PLS entry %s: '%s'",
key, error->message);
g_error_free(error);
g_free(key);
return;
@@ -118,7 +124,7 @@ pls_open_stream(struct input_stream *is)
nbytes = is->LockRead(buffer, sizeof(buffer), error2);
if (nbytes == 0) {
if (error2.IsDefined()) {
g_warning("%s", error2.GetMessage());
LogError(error2);
return NULL;
}
@@ -130,7 +136,7 @@ pls_open_stream(struct input_stream *is)
} while (kf_data.length() < 65536);
if (kf_data.empty()) {
g_warning("KeyFile parser failed: No Data");
LogWarning(pls_domain, "KeyFile parser failed: No Data");
return NULL;
}
@@ -140,7 +146,8 @@ pls_open_stream(struct input_stream *is)
G_KEY_FILE_NONE, &error);
if (!success) {
g_warning("KeyFile parser failed: %s", error->message);
FormatError(pls_domain,
"KeyFile parser failed: %s", error->message);
g_error_free(error);
g_key_file_free(keyfile);
return NULL;

View File

@@ -25,14 +25,15 @@
#include "Song.hxx"
#include "tag/Tag.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
#include "Log.hxx"
#include <glib.h>
#include <assert.h>
#include <string.h>
#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN "rss"
static constexpr Domain rss_domain("rss");
/**
* This is the state object for the GLib XML parser.
@@ -221,7 +222,7 @@ rss_open_stream(struct input_stream *is)
if (nbytes == 0) {
if (error2.IsDefined()) {
g_markup_parse_context_free(context);
g_warning("%s", error2.GetMessage());
LogError(error2);
return NULL;
}
@@ -231,7 +232,8 @@ rss_open_stream(struct input_stream *is)
success = g_markup_parse_context_parse(context, buffer, nbytes,
&error);
if (!success) {
g_warning("XML parser failed: %s", error->message);
FormatError(rss_domain,
"XML parser failed: %s", error->message);
g_error_free(error);
g_markup_parse_context_free(context);
return NULL;
@@ -240,7 +242,8 @@ rss_open_stream(struct input_stream *is)
success = g_markup_parse_context_end_parse(context, &error);
if (!success) {
g_warning("XML parser failed: %s", error->message);
FormatError(rss_domain,
"XML parser failed: %s", error->message);
g_error_free(error);
g_markup_parse_context_free(context);
return NULL;

View File

@@ -26,6 +26,8 @@
#include "Song.hxx"
#include "tag/Tag.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
#include "Log.hxx"
#include <glib.h>
#include <yajl/yajl_parse.h>
@@ -36,13 +38,16 @@ static struct {
char *apikey;
} soundcloud_config;
static constexpr Domain soundcloud_domain("soundcloud");
static bool
soundcloud_init(const config_param &param)
{
soundcloud_config.apikey = param.DupBlockString("apikey");
if (soundcloud_config.apikey == NULL) {
g_debug("disabling the soundcloud playlist plugin "
"because API key is not set");
LogDebug(soundcloud_domain,
"disabling the soundcloud playlist plugin "
"because API key is not set");
return false;
}
@@ -254,7 +259,7 @@ soundcloud_parse_json(const char *url, yajl_handle hand,
error);
if (input_stream == NULL) {
if (error.IsDefined())
g_warning("%s", error.GetMessage());
LogError(error);
return -1;
}
@@ -269,7 +274,7 @@ soundcloud_parse_json(const char *url, yajl_handle hand,
input_stream->Read(buffer, sizeof(buffer), error);
if (nbytes == 0) {
if (error.IsDefined())
g_warning("%s", error.GetMessage());
LogError(error);
if (input_stream->IsEOF()) {
done = true;
@@ -296,7 +301,7 @@ soundcloud_parse_json(const char *url, yajl_handle hand,
)
{
unsigned char *str = yajl_get_error(hand, 1, ubuffer, nbytes);
g_warning("%s", str);
LogError(soundcloud_domain, (const char *)str);
yajl_free_error(hand, str);
break;
}
@@ -341,7 +346,9 @@ soundcloud_open_uri(const char *uri, Mutex &mutex, Cond &cond)
rest = p;
if (strcmp(scheme, "soundcloud") != 0) {
g_warning("incompatible scheme for soundcloud plugin: %s", scheme);
FormatWarning(soundcloud_domain,
"incompatible scheme for soundcloud plugin: %s",
scheme);
g_free(s);
return NULL;
}
@@ -361,7 +368,7 @@ soundcloud_open_uri(const char *uri, Mutex &mutex, Cond &cond)
g_free(s);
if (u == NULL) {
g_warning("unknown soundcloud URI");
LogWarning(soundcloud_domain, "unknown soundcloud URI");
return NULL;
}

View File

@@ -24,14 +24,15 @@
#include "InputStream.hxx"
#include "tag/Tag.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
#include "Log.hxx"
#include <glib.h>
#include <assert.h>
#include <string.h>
#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN "xspf"
static constexpr Domain xspf_domain("xspf");
/**
* This is the state object for the GLib XML parser.
@@ -240,7 +241,7 @@ xspf_open_stream(struct input_stream *is)
if (nbytes == 0) {
if (error2.IsDefined()) {
g_markup_parse_context_free(context);
g_warning("%s", error2.GetMessage());
LogError(error2);
return NULL;
}
@@ -250,7 +251,8 @@ xspf_open_stream(struct input_stream *is)
success = g_markup_parse_context_parse(context, buffer, nbytes,
&error);
if (!success) {
g_warning("XML parser failed: %s", error->message);
FormatError(xspf_domain,
"XML parser failed: %s", error->message);
g_error_free(error);
g_markup_parse_context_free(context);
return NULL;
@@ -259,7 +261,8 @@ xspf_open_stream(struct input_stream *is)
success = g_markup_parse_context_end_parse(context, &error);
if (!success) {
g_warning("XML parser failed: %s", error->message);
FormatError(xspf_domain,
"XML parser failed: %s", error->message);
g_error_free(error);
g_markup_parse_context_free(context);
return NULL;