/*
 * Copyright (C) 2004 Felipe Gustavo de Almeida
 * Copyright (C) 2010-2015 The MPDroid Project
 *
 * All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice,this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package com.anpmech.mpd;

public final class Log {

    private Log() {
        super();
    }

    /** TODO: If anyone cares, this class could use better logging. */

    /**
     * Sends a debug message to the user.
     *
     * @param tag     Used to identify the source of a log message. It usually identifies the class
     *                or activity where the log call occurs.
     * @param message The message to send to the user.
     */
    public static void debug(final String tag, final String message) {
        System.out.print(tag + ":debug: " + ": " + message);
    }

    /**
     * Sends a debug message to the user.
     *
     * @param tag     Used to identify the source of a log message. It usually identifies the class
     *                or activity where the log call occurs.
     * @param message The message to send to the user.
     * @param tr      An exception to log.
     */
    public static void debug(final String tag, final String message, final Throwable tr) {
        System.out.print(tag + ":debug: " + message);
        System.out.print(tr.getStackTrace());
    }

    /**
     * Sends an error message to the user.
     *
     * @param tag     Used to identify the source of a log message. It usually identifies the class
     *                or activity where the log call occurs.
     * @param message The message to send to the user.
     */
    public static void error(final String tag, final String message) {
        System.out.print(tag + ":error: " + message);
    }

    /**
     * Sends an error message to the user.
     *
     * @param tag     Used to identify the source of a log message. It usually identifies the class
     *                or activity where the log call occurs.
     * @param message The message to send to the user.
     * @param tr      An exception to log.
     */
    public static void error(final String tag, final String message, final Throwable tr) {
        System.out.print(tag + ":error: " + message);
        System.out.print(tr.getStackTrace());
    }

    /**
     * Sends a warning message to the user.
     *
     * @param tag     Used to identify the source of a log message. It usually identifies the class
     *                or activity where the log call occurs.
     * @param message The message to send to the user.
     */
    public static void warning(final String tag, final String message) {
        System.out.print(tag + ":warning: " + message);
    }

    /**
     * Sends a warning message to the user.
     *
     * @param tag     Used to identify the source of a log message. It usually identifies the class
     *                or activity where the log call occurs.
     * @param message The message to send to the user.
     * @param tr      An exception to log.
     */
    public static void warning(final String tag, final String message, final Throwable tr) {
        System.out.print(tag + ":warning: " + message);
        System.out.print(tr.getStackTrace());
    }
}

@@ -1432,16 +1432,82 @@
 h.mpd;%0A%0A
+import java.util.logging.Level;%0Aimport java.util.logging.Logger;%0A%0A
 public f
@@ -1572,80 +1572,8 @@
  %7D%0A%0A
-    /** TODO: If anyone cares, this class could use better logging. */%0A%0A
     
@@ -1932,50 +1932,84 @@
     
-System.out.print(tag + %22:debug: %22 + %22: %22 +
+final Logger logger = Logger.getLogger(tag);%0A%0A        logger.log(Level.INFO,
  mes
@@ -2449,62 +2449,62 @@
     
-System.out.print(tag + %22:debug: %22 + mess
+final Logger logger = Logger.getLogger(t
 ag
-e
 );%0A
+%0A
         
 Syst
@@ -2503,43 +2503,42 @@
     
-System.out.print(tr.getStackTrace()
+logger.log(Level.INFO, message, tr
 );%0A 
@@ -2908,43 +2908,86 @@
     
-System.out.print(tag + %22:error: %22 +
+final Logger logger = Logger.getLogger(tag);%0A%0A        logger.log(Level.SEVERE,
  mes
@@ -3428,62 +3428,62 @@
     
-System.out.print(tag + %22:error: %22 + mess
+final Logger logger = Logger.getLogger(t
 ag
-e
 );%0A
+%0A
         
 Syst
@@ -3482,43 +3482,44 @@
     
-System.out.print(tr.getStackTrace()
+logger.log(Level.SEVERE, message, tr
 );%0A 
@@ -3892,45 +3892,87 @@
     
-System.out.print(tag + %22:warning: %22 +
+final Logger logger = Logger.getLogger(tag);%0A%0A        logger.log(Level.WARNING,
  mes
@@ -4416,64 +4416,62 @@
     
-System.out.print(tag + %22:warning: %22 + message
+final Logger logger = Logger.getLogger(tag
 );%0A
+%0A
         
 Syst
@@ -4470,43 +4470,45 @@
     
-System.out.print(tr.getStackTrace()
+logger.log(Level.WARNING, message, tr
 );%0A 

Use logger.