From c330d694c75a42492712b1442333385ef899791d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 15 Dec 2013 17:20:42 +0100 Subject: Log: move Log() to LogBackend.cxx Prepare for GLib removal. --- src/Log.cxx | 38 +++++--------------------------------- src/LogBackend.cxx | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 33 deletions(-) create mode 100644 src/LogBackend.cxx (limited to 'src') diff --git a/src/Log.cxx b/src/Log.cxx index 44dfe14ce..c58790841 100644 --- a/src/Log.cxx +++ b/src/Log.cxx @@ -20,46 +20,18 @@ #include "config.h" #include "LogV.hxx" #include "util/Error.hxx" -#include "util/Domain.hxx" - -#include #include #include +#include #include -static GLogLevelFlags -ToGLib(LogLevel level) -{ - switch (level) { - case LogLevel::DEBUG: - return G_LOG_LEVEL_DEBUG; - - case LogLevel::INFO: - return G_LOG_LEVEL_INFO; - - case LogLevel::DEFAULT: - return G_LOG_LEVEL_MESSAGE; - - case LogLevel::WARNING: - case LogLevel::ERROR: - return G_LOG_LEVEL_WARNING; - } - - assert(false); - gcc_unreachable(); -} - -void -Log(const Domain &domain, LogLevel level, const char *msg) -{ - g_log(domain.GetName(), ToGLib(level), "%s", msg); -} - void LogFormatV(const Domain &domain, LogLevel level, const char *fmt, va_list ap) { - g_logv(domain.GetName(), ToGLib(level), fmt, ap); + char msg[1024]; + vsnprintf(msg, sizeof(msg), fmt, ap); + Log(domain, level, msg); } void @@ -144,7 +116,7 @@ FormatError(const Error &error, const char *fmt, ...) void LogErrno(const Domain &domain, int e, const char *msg) { - LogFormat(domain, LogLevel::ERROR, "%s: %s", msg, g_strerror(e)); + LogFormat(domain, LogLevel::ERROR, "%s: %s", msg, strerror(e)); } void diff --git a/src/LogBackend.cxx b/src/LogBackend.cxx new file mode 100644 index 000000000..a06a41573 --- /dev/null +++ b/src/LogBackend.cxx @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2003-2013 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" +#include "Log.hxx" +#include "util/Domain.hxx" + +#include + +#include + +static GLogLevelFlags +ToGLib(LogLevel level) +{ + switch (level) { + case LogLevel::DEBUG: + return G_LOG_LEVEL_DEBUG; + + case LogLevel::INFO: + return G_LOG_LEVEL_INFO; + + case LogLevel::DEFAULT: + return G_LOG_LEVEL_MESSAGE; + + case LogLevel::WARNING: + case LogLevel::ERROR: + return G_LOG_LEVEL_WARNING; + } + + assert(false); + gcc_unreachable(); +} + +void +Log(const Domain &domain, LogLevel level, const char *msg) +{ + g_log(domain.GetName(), ToGLib(level), "%s", msg); +} -- cgit v1.2.3